Android scroview 系列遇到的一些问题和解决方案

1.推荐一个Google 的

com.github.ksoichiro.android.observablescrollview.ObservableScrollView

主要是这个监听事件 做的很足

而且除了scrollview 之外其他一些滑动的view 也有

but,这个也有问题,和RecyclerView 嵌套 滑动卡顿

RecycyclerView 这边 做的处理

public class CustomGradLayoutManager extends GridLayoutManager {
    private boolean isScrollEnabled = true;

    public CustomGradLayoutManager(Context context, int spanCount) {
        super(context, spanCount);
    }
    public CustomGradLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    public CustomGradLayoutManager(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();
    }

}

设置false,然后还不行,然而使用NestScrollView 可以 ,但是这个玩意的监听事件要求的minSdk 20往上了


2.so,可以这样

   <com.github.ksoichiro.android.observablescrollview..ObservableScrollView
            android:id="@+id/zhujk_scrollview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <android.support.v4.widget.NestedScrollView
                android:id="@+id/zhujk_nestscrollview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

3.然而事件的传递 是接不到的

Nestscrollview.setNestedScrollingEnabled(false);

猜你喜欢

转载自blog.csdn.net/FlyPig_Vip/article/details/83339996