欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android 记录RecyclerView和ScrollView滑动冲突的BUG

程序员文章站 2022-06-21 20:13:51
一、RecyclerView和ScrollView滑动冲突的BUG,缺点onBindViewHolder时会把列表中的全部数据加载出来,有点难受。不知道有没有其他解决方法。mWifiRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()){ @Override public boolean canScrollVertically() { return false;//修复wifi列表滑动卡顿....

 一、RecyclerView和ScrollView滑动冲突的BUG,缺点onBindViewHolder时会把列表中的全部数据加载出来,有点难受。不知道有没有其他解决方法。

mWifiRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()){
    @Override
    public boolean canScrollVertically() {
        return false;//修复wifi列表滑动卡顿,RecyclerView和ScrollView冲突的bug
    }
    @Override
    public boolean canScrollHorizontally() {
        return false;//水平的话重写这个方法
    }
});

二、另外加一个BUG是为了禁止recyclerview下滑,有点鸡肋,特定场景使用到了。

//禁止recyclerview下滑
public class MyGridLayoutManager extends GridLayoutManager {

    private boolean isScrollEnabled = true;

    public MyGridLayoutManager(Context context, int spanCount) {
        super(context, spanCount);
    }

    public void setScrollEnabled(boolean flag) {
        this.isScrollEnabled = flag;
    }

    @Override
    public boolean canScrollVertically() {
        return isScrollEnabled && super.canScrollVertically();
    }


}
MyGridLayoutManager myGridLayoutManager = new MyGridLayoutManager(this,3);
myGridLayoutManager.setOrientation(RecyclerView.VERTICAL);
myGridLayoutManager.setScrollEnabled(false);
mRightRecyclerView.setLayoutManager(myGridLayoutManager);

 

本文地址:https://blog.csdn.net/qq_39009576/article/details/108585316