Android scroview 系列遇到的一些問題和解決方案
阿新 • • 發佈:2018-11-06
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);