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