1. 程式人生 > >Android scroview 系列遇到的一些問題和解決方案

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);