结对编程的第1例:主要着眼于,解决RecyclerView的头部伸缩时,抖动的功能
来源:互联网 发布:漫威电影观看顺序知乎 编辑:程序博客网 时间:2024/06/01 09:41
1.工具。人员。会议室准备。
2.先展示一遍代码,整个需求流程讲解一下。
目前做了哪些
想要什么样的效果
遇到了什么样的问题
3.发哥揭示出了问题的原理(从另一个观察的角度)
发哥联想到了近来玩的一个桌球APP
然后展示了可能出现问题的手指按住后抬起,导致的焦点偏移情况
4.那么问题的关键就出来了,既然是自动滑动与手指按住的冲突,那么在自动滑时,禁止RecyclerView对手指作出相应就好
5.尝试把RecyclerView在特定时段,设置为禁止滚动(滑动)
1.尝试了 recycler.setNestedScrollEnable(false)
方法
————>没有效果
2.尝试了
LinearLayoutManager linearLayoutManager = new LinearLayoutManager( getActivity(), LinearLayoutManager.VERTICAL, false) { @Override public boolean canScrollVertically() { return false; }}recyclerview.setLayoutManager(linearLayoutManager);
————>没有效果
3.尝试了
void setLayoutFrozen (boolean frozen)
recyclerview.setLayoutManager(true) //实现冻结。
——————>这一方法,实现了RecyclerView的禁止手指触控响应功能。手指无法对RecyclerView进行操作。(但是:这一方法,需要配合 #6 点,才能完美实现功能。)
6.在setLayoutFrozen 冻结Recycler之前,要先停止Recycler的滚动(滑动)
不然会报异常: "Do not setLayoutFrozen in layout or scroll"·
原因是在于:设置 冻结
方法的同时,Recycler仍处在滚动的状态。 setLayoutFrozen的内部,会自行先检测,是否处于 layout方法 或 scroll方法 的状态下。如果是,则会抛出异常。
解决方法:
//强制停止RecyclerView滑动方法 public static void forceStopRecyclerViewScroll(RecyclerView mRecyclerView) { mRecyclerView.dispatchTouchEvent( MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_CANCEL, 0, 0, 0)); }
操作步骤:直接在要停止Recycler滚动的地方(比如recyclerview.setLayoutManager(true)
之前),塞入这句。则可以实现先停止滚动,然后冻结Recycler。
7.继续,要美化一下Recycler向上滑到,头部缩回去后,有一部分文字内容,仍没有完全显示出来,需要再手动往上滑一点点以显示,的这个问题
很简单的采用网上的两个方法:
recycler.smoothScrollToPosition( 0 )
以及
recycler.scrollToPosition( 0 )
两者的区别,在于 smoothScroll ,会平滑的滚动过去;
而scroll,则会直接滚动到指定位置。
实际使用中:
scroll使用,很完美。完美达到需求。
smoothScroll,会触发 frozen冻结的 "Do not setLayoutFrozen in layout or scroll"·
问题。暂时还不知道如何解决。
于是,决定先采用 scroll,效果也确实满足了要求。
- 结对编程的第1例:主要着眼于,解决RecyclerView的头部伸缩时,抖动的功能
- iOS 伸缩的头部tableView
- 头部图片可伸缩的TableView
- RecyclerView的添加头部布局
- RecyclerView 多选+仿IOS卸载时的图标抖动
- SnapHelper,对RecyclerView的功能拓展
- SnapHelper,对RecyclerView的功能拓展
- 对话框伸缩功能的实现
- 对话框伸缩功能的实现
- 对话框伸缩功能的实现
- iOS Scrollview 的头部view的拉伸伸缩效果
- 基于MFC的opengl编程(解决拖动窗口抖动问题)
- ScrollView抖动问题的解决
- 自定义控件:overScrollBy+动画实现 ListView 的头部回弹抖动
- recyclerview 添加头部和尾部的优雅
- 自定义带头部和尾部的RecyclerView
- CoordinatorLayout实现工具栏及页面头部的伸缩与折叠
- 自定义View之头部可伸缩的ListView
- phonegap与H5中的接口对比
- 姐姐给我推荐的两个期刊数据库索引
- Windows Android Studio安装教程
- 网页上不可选中文字的那些事儿
- 移动端样式小技巧
- 结对编程的第1例:主要着眼于,解决RecyclerView的头部伸缩时,抖动的功能
- android scrollView 内部子布局MATCH_PARENT却无法填充满屏幕问题
- 时间工具类方法-Java实现
- MVP
- Java在web页面上中文URL乱码解决
- 线程中CreateEvent和SetEvent及WaitForSingleObject
- Sequence discriminative training
- mac 终端 常用命令
- Rehashing