问题发生
NestedScrollView
是support v4包里提供的适应嵌套滑动的ScrollView
,用法和ScrollView
是相似的,这里不是讲它怎么使用,而是说它的一个Bug——在NestedScrollView
里面的添加相关的子View,当滑动NestedScrollView
之后,对于任何子View的首次点击事件都是无效的,第二次点击就是OK的。相关Issues
解决方案
public class NestedScrollView extends FrameLayout implements NestedScrollingParent, NestedScrollingChild {
...
private void initScrollView() {
...
// replace this line:
// mScroller = new ScrollerCompat(getContext(), null);
mScroller = ScrollerCompat.create(getContext(), null);
...
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
...
switch (action & MotionEventCompat.ACTION_MASK) {
...
case MotionEvent.ACTION_DOWN: {
...
// replace this line:
// mIsBeingDragged = !mScroller.isFinished();
mIsBeingDragged = false;
...
}
}
}
}
自己创建一个NestedScrollView
重写两个方法,基本上就可以用了!!
具体请参考:
stackoverflow