首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

手把手教你用RecyclerView实现猫眼电影选择效果

最近的一个电影票平台项目中,使用RecyclerView实现了仿猫眼的电影选择控件,如下图所示: 以上图为例,我们的需求如下: 每一次滑动都让图片保持中间。...(1)每一次滑动都让图片保持正中间 滑动保持图片在正中间,RecyclerView24.2.0之后,Google官方给我们提供了一个SnapHelper的辅助类,可以帮助我们实现每次滑动结束都保持居中位置...顾名思义,两者都可以是滑动结束时item保持正中间,但是LinearSnapHelper可以一次滑动多个item,PagerSnapHelper像ViewPager一样限制你一次只能滑动一个item...,我们如果需要滑动到某一位置,一般会使用RecyclerView.smoothScrollToPosition(idx)方法,但是在此处我们设置item的点击事件时,不能直接使用这个方法,因为这个方法只会将...url转为bitmap,因为是网络,我们不能再主线程里完成,因此需要新开一个线程,Glide,可以设定一个占位符,即网络图片加载之前的默认图片,然后加载图片时可以使用transition进行淡入淡出

1.1K00

仿抖音上下滑动分页视频

手指拖动页面滑动,只要没有切换到其他的页面,视频都是播放的。切换了页面,上一个视频销毁,该页面则开始初始化播放。 切换页面的时候过渡效果要自然,避免出现闪屏。...很多人会以为 Fragment onResume 的时候就是可见的, ViewPager 的 Fragment 就是个反例,尤其是多个 ViewPager 嵌套时,会同时有多个父 Fragment...3.recyclerView对应的adapteronCreateViewHolder初始化视频操作,同时当onViewRecycled时,销毁视频资源。...重写onChildViewAttachedToWindow方法,RecyclerView,当Item添加进来了调用这个方法。...接着,不管是recyclerView还是ViewPager,当页面处于不可见被销毁或者view被回收的阶段,这个时候需要把视频资源销毁,尽量视频播放功能封装起来,然后页面不同状态调用方法即可。

5.6K20

高仿支付宝9.9.2版本生活模块界面来讲解CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout

fangzhifubao.gif 是不是很像支付宝的效果呢,我们今天就要通过讲解android5.0新出的控件CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout...不用考虑ScrollView是否滚动。...,View就暂时不去往下滚动,直到ScrollView滑动到顶部不再滑动时,View再继续往下滑动,直到滑到View的顶部结束。...img2.PNG 这可以滑动,exitUntilCollapsed实现的效果是 ? img4.PNG 这一块当滑动到最顶的时候不会跟这个继续滑到最顶,保留这一块。...4.Toolbar动态变化 在此整体布局就已经完成,不过还有一个效果就是向上移动是toolbar的的View是动态变化的,一开始我以为这些控件会有这个功能吧,没想到找了很久都没找到,没办法只能自己实现了

1.1K20

recycleview的优化_recyclerview原理

需要新插入的view从cacheView/Pool找,没找到则createViewHolder。从ViewGroup移除的子view会放到Pool缓存池中,如下图中的itemView b。...具体表现如下图: 可以看到CacheView缓存蓝色的块一直最最近两个,RecycledViewPool,保存最大是5,超过5了后ViewHolder都被回收。...当调用notifyDataSetChanged()方法时,ViewHolder会进入上面的一级缓存mAttachedScrap不是进入缓存池pool,这样的好处:1)不会存在缓存池pool满的问题...view,不是新建view)。...具体实现方式是: RecyclerView 开始一个滚动时new Runnable对象,根据 layout manager 和滚动的方向预取即将进入视野的条目,可以同时取出一个或多个条目,例如在使用

3.7K20

Android 天气APP(二十一)滑动改变UI、增加更多天气数据展示,最多未来15天天气预报

正文   首先是滑动改变UI,比如我们的一个界面中有一个滑动VIew,可以使ScrollView或者NestedScrollView,实现一个监听方法,然后方法根据滑动距离判断是上滑还是下滑,又在上滑或者下滑中进行...UI的改变就可以了,听起来是不是很简单呢?...有了点击事件,现在可以app模块的ui包下创建个MoreDailyActivity了,用于显示更多的天气详情数据。 首先修改布局文件activity_more_daily.xml <?...; import androidx.recyclerview.widget.PagerSnapHelper; import androidx.recyclerview.widget.RecyclerView...snapHelper = new PagerSnapHelper(); snapHelper.attachToRecyclerView(rv);//滚动对齐,使RecyclerView

90420

关于RecyclerView你知道的不知道的都在这了(下)目录正文

但 Recycler 不是只开放了 getViewForPosition()?本来内部复用时就是自己调了这个方法,我们在这个方法内部走到开发者扩展自定义扩展的流程时再重新调一下?...并且,官方注释也给出一种应用场景:使用 ViewPager 时各页面RecyclerView 有相同的 Item 布局结构。...7.2 DefaultItemAnimator RecyclerView 默认有提供 Item 的动画, SimpleItemAnimator 只是处理跟动画无关的准备工作,那么具体的默认动画的实现就是...机制,每帧的回调过程手动调用 setXXX() 来实现的动画效果。...OnFlingListener RecyclerView 是可滑动控件,平常使用过程,我们可能就是上滑,下滑,左边滑滑,右边滑滑,能够刷新更多列表即可,通常都没太过去注意到滑动的细节。

1.2K30

CoordinatorLayout与滚动的处理

RecyclerView或者任意支持嵌套滚动的view比如NestedScrollView上添加app:layout_behavior。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度的时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部的时候展开完。 ?...记住,要把带有scroll flag的view放在前面,这样收回的view才能让正常退出,固定的view继续留在顶部。 此时,你应该注意到我们的Toolbar能够响应滚动事件了。 ?...通常,我们我们都是设置Toolbar的title,现在,我们需要把title设置CollapsingToolBarLayout上,不是Toolbar。...CoordinatorLayout的工作原理是搜索定义了CoordinatorLayout Behavior 的子view,不管是通过xml中使用app:layout_behavior标签还是通过代码

69320

CoordinatorLayout使用全解析

enterAlwaysCollapsed:假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度的时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部的时候展开完...应该说MDRecyclerView代替了ListView,NestedScrollView代替了ScrollView,他们两个都可以用来跟ToolBar交互,实现上拉下滑ToolBar的变化。...NestedScrollView的名字其实就可以看出他的作用了,Nested是嵌套的意思,ToolBar基本需要嵌套使用。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度的时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部的时候展开完。...,我们需要把title设置CollapsingToolBarLayout上,不是Toolbar。

1.9K20

android实现录屏小功能

整个项目生成的是一个文件夹,文件夹包含一个MP3文件,一个cw协议文件(存储用户的操作),图片。整个画板是一个recyclerView,item包含一个涂鸦画板,图片控件。...音频 //开始录音 if (mMediaRecorder == null) { mMediaRecorder = new MediaRecorder(); } mMediaRecorder.setAudioSource...return canScrollVertical && super.canScrollVertically(); } } 滑动时只滑动一页类似viewPage mPagerSnapHelper = new PagerSnapHelper...= RecyclerView.SCROLL_STATE_IDLE 当滚动停止时触发防止滚动过程不停触发 if (newState == RecyclerView.SCROLL_STATE_IDLE...cw, int seconds,boolean isSeek) { List<CWACT cwacts = cw.getACT(); //如何是播放器跳转,先回到首页,清空所有item的画板

2.3K31

Android之MaterialDesign应用技术

,往下滑,则返回顶部图标显示,往上滑图标不显示, 原因:很多段子软件,会有大量的文字和图片,当用户往下翻的时候,也就是说内容会不断的在上方消失,下面的内容不算的刷新出来,这时右下角出现一个辅助用户回到顶部的按钮...,因为往上翻时候可能加载的了很多,有些用户就像一步到达顶部,这就出现了滑动监听。...适配器因为不是重点,这里就不多说了,大家知道这是一个传入list的RecyclerView适配器就行 public class MyAdapter extends RecyclerView.Adapter...和帧布局相似,会覆盖,帧布局写上id然后说某个控件下面或者上面就可以,这个布局就要写app:layout_behavior即可。...这样就Ok了;   总结:这里的代码虽然看着少,那是因为大部分代码都被封装好了,我们一开始添加的依赖就是封装好的包,悬停效果能够给人一个很好的体验,当你翻一个软件简介的时候,无论翻多少行,标题始终都会在上头悬浮

1.3K90

Android开发笔记(一百四十四)高仿支付宝的头部伸缩动画

Android5.0推出的MaterialDesign库包含了处理头部工具栏的多个控件,不但允许自定义顶部导航栏,而且导航栏高度是可以伸缩的。...看起来很眼熟是不是,上面的截图正是仿支付宝首页的头部效果。...之所以要嵌套这么多层,是因为要完成以下功能: 1、CoordinatorLayout嵌套AppBarLayout,这是为了让头部导航栏能够跟随内容视图下拉展开,跟随内容视图上拉收缩。...android:fitsSystemWindows="true" app:layout_scrollFlags="scroll|exitUntilCollapsed|snap...反过来,也可以一开始给导航栏罩上一层不透明的视图,此时导航栏的控件是看不见的,然后随着距离的变化,遮罩变得越来越不透明,导航栏也会跟着变得越来越清晰了。

1.1K10

ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

Activity的相关解决方法 于是我查找了相关的资料,Activity完美解决,主要要一下两种方法 第一种方法,重写Activity的onWindowFocusChanged()方法,在里面调用...Fragment的相关解决方法 同样是调用第二种方法,调用RecyclerView上面的View的一下方法,让其获取焦点 view.setFocusable(true); view.setFocusableInTouchMode...(true); view.requestFocus(); 这段代码初始化的时候就让该界面的顶部的某一个控件获得焦点,滚动条自然就显示到顶部了。...但是该方法存在缺点,就是当我们上面的view如果滑动到一半的时候,切换到下一个Fragment,切换回来的时候,RecyclerView的第一个item会自动滑动到顶部。...题外话 在这篇博客的最后提高的实现轮播图+list列表的几种实现形式,刚开始是不想写的,后面因为ScrollView里面嵌套ViewPager和RecyclerViewfragmentRecyclerView

5.6K51

ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

,看不见,这时候的用户体验是比较差的 即结构如下面的时候 Activity的相关解决方法 于是我查找了相关的资料,Activity完美解决,主要要一下两种方法 第一种方法,重写Activity...(true); view.requestFocus(); 这段代码初始化的时候就让该界面的顶部的某一个控件获得焦点,滚动条自然就显示到顶部了。...但是该方法存在缺点,就是当我们上面的view如果滑动到一半的时候,切换到下一个Fragment,切换回来的时候,RecyclerView的第一个item会自动滑动到顶部。...里面嵌套ViewPager和RecyclerView,这种实现方式需要自己解决View滑动事件的冲突,同时还有我在上述提高的Fragment存在的问题 使用listView的addHeaderView...题外话 在这篇博客的最后提高的实现轮播图+list列表的几种实现形式,刚开始是不想写的,后面因为ScrollView里面嵌套ViewPager和RecyclerViewfragmentRecyclerView

61210

关于RecyclerView你知道的不知道的都在这了(上)前言目录正文

竖直LinearLayoutManager示例.png Tv 应用,这种竖直方向的 LinearLayoutManager 使用场景大多都是用于显示菜单项,使用频率并不是特别高,但在手机应用,这种的使用频率算是特别高的了...那如果这时我的需求是要寻找最后一个 item 不是最底部的呢?...setGapStrategy() invalidateSpanAssignments() 这两个方法还没理清它们是干嘛用的,网上有资料说是用于解决滑动时 item 自动变换位置以及顶部留白问题,但我不是很清楚...大部分场景下,这两个的值都是一样的,但在涉及到刷新时,由于 Android 是每隔 16.6 ms 刷新一次屏幕,如果在某一帧开始时,adapter 关联的数据源发生的变化,item 被移除或者新增了...另外,注释也说了,该方法的回调是 ViewHolder 放进 RecyclerViewPool 前, ViewHolder 放进 Pool 时会被 reset,因为上一节也说过,其实 ViewHolder

3K60

Android:让你明明白白的使用RecyclerView——SnapHelper详解

25.1.0版本官方又提供了一个PagerSnapHelper的子类,可以使RecyclerView像ViewPager一样的效果,一次只能滑一页,而且居中显示。...开始做fling操作时被调用。...就是正常模式下SmoothScroller通过setTargetPosition()方法设置的ItemView只能滚动到与RecyclerView边缘对齐,解决这个局限的处理方式就是SmoothScroller...滚动的操作都是由SmoothScroller全权负责,它可以控制Item的滚动速度(刚开始是匀速),并且滚动到targetSnapView被layout时变换滚动速度(转换成减速),以让滚动效果更加真实...目前的效果跟Google Play的效果主要还有两个差异: 滚动速度明显慢于Google Play的横向列表滚动速度,导致滚动起来感觉比较拖沓,看起来不是很干脆的样子。

5.4K40
领券