上下观古今,起伏千万途。这篇文章主要讲述Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决相关的知识,希望能为你提供帮助。
一个比较长的界面一般都是Scrollview嵌套RecyclerView来解决.不过这样的UI并不是我们开发人员想看到的,实际上嵌套之后.因为Scrollview和RecyclerView都是滑动控件.会有一点滑动上的冲突.导致滑动起来有些卡顿.这个时候.我们重写一下LayoutManager就行了例如:
[java]
view plain
copy
- LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false) {
- @Override
- public boolean canScrollVertically() {
- return false;
- }
- };
- recyclerview.setLayoutManager(linearLayoutManager);
- recyclerview.setAdapter(tempCommonAdapter);
如此.禁止掉RecyclerView的滑动.就能一如既往的流畅了 问题现象:
一个界面有多个RecyclerView或者其他超过一屏显示的一些内容时,就需要要上下滚动了,就会需要在外面嵌套一个ScrollView,但是滑动过程不是很顺畅,有卡顿的感觉。
解决方案:
禁止RecyclerView的滑动。
【Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决】
最简单便捷的方法就是[java] view plain copy
- linearLayoutManager = new LinearLayoutManager(context) {
- @Override
- public boolean canScrollVertically() {
- return false;
- }
- };
[java] view plain copy
- public class ScrollGridLayoutManager extends GridLayoutManager {
- private boolean isScrollEnabled = true;
- public ScrollGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
- public ScrollGridLayoutManager(Context context, int spanCount) {
- super(context, spanCount);
- }
- public ScrollGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) {
- super(context, spanCount, orientation, reverseLayout);
- }
- public void setScrollEnabled(boolean flag) {
- this.isScrollEnabled = flag;
- }
- @Override
- public boolean canScrollVertically() {
- //Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll
- return isScrollEnabled & & super.canScrollVertically();
- }
- }
推荐阅读
- Android art模式 androidruntime
- appium实现adb命令 截图和清空EditText
- Android 跳转系统选择本地视频的功能
- android性能测试
- 安卓 多线程下载文件
- appium 自动化测试案例
- 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理
- 痛定思痛,重新做码农——来自三年Android工程师的自省书
- appium之Context切换