我有一个viewpager,在其中一个片段中,我有两个独立的片段,分别包含一个垂直和水平的Recyclerview.
当我将水平回收视图滚动到最后一项并尝试进一步滑动时,viewpager会滚动到下一页.我不希望这种情况发生.当我尝试过度滚动水平回收视图时,我想禁用viewpager的分页.
但是,当我在其他地方滑动时,我不想禁用viewpager的分页.例如,如果我要在垂直的recyclelerview或父片段中的任何空白区域上滑动,它仍然会导致viewpager更改页面.
我在这个问题中读到了如何禁用viewpager的分页.同时这太问题是,有一个孩子viewpager类似,但是我还没有成功尝试复制与水平recyclerview.
这是一些结构:
自定义viewpager允许我禁用分页(从上面的第一个SO链接获取):
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
} }
Run Code Online (Sandbox Code Playgroud)
对于水平回收视图,我设置了一个ontouchlistener(类似于上面的第二个SO链接):
horizontalRecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-recyclerview