问题描述: 在使用Androidx ViewPager时,无法与滚动视图行为一起工作。当滚动视图嵌套在ViewPager中时,滚动事件无法正确传递到滚动视图。
解决方法: 要解决这个问题,可以使用以下方法:
public class CustomViewPager extends ViewPager {
private boolean isScrollEnabled = true;
public CustomViewPager(Context context) {
super(context);
}
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (isScrollEnabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (isScrollEnabled) {
return super.onTouchEvent(event);
}
return false;
}
public void setScrollEnabled(boolean scrollEnabled) {
isScrollEnabled = scrollEnabled;
}
}
nestedScrollingEnabled="true"
。
setScrollEnabled(false)
方法禁用ViewPager的滚动。CustomViewPager viewPager = findViewById(R.id.viewPager);
viewPager.setScrollEnabled(false);
通过以上步骤,Androidx ViewPager将能够与滚动视图行为一起工作,滚动事件将正确地传递到滚动视图中。