点击卡片时会打开新活动(参见图片),但如果您横向滑动(错误或有意识地),则会发生同样的事情,应禁用该功能。怎么做?
我使用嵌套的viewPager
。第一个是水平viewPager(在此水平滚动中被禁用),你可以看到,在第一个片段(名为Digest)中,我使用了垂直viewPager,它工作正常。问题是如果我尝试水平滚动,则打开下一个Activity
(单击该卡时应打开)。如果我在卡片上水平滚动,我希望不会发生任何事情。
答案 0 :(得分:0)
你的问题没有明确,所以生病假设你想阻止viewpager完全滑动。
您只需像这样扩展viewpager小部件。
public class NonSwipeableViewPager extends ViewPager {
private boolean isPagingEnabled = true;
public NonSwipeableViewPager(Context context) {
super(context);
}
public NonSwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return this.isPagingEnabled && super.onTouchEvent(event);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return this.isPagingEnabled && super.onInterceptTouchEvent(event);
}
public void setPagingEnabled(boolean b) {
this.isPagingEnabled = b;
}
}
然后以编程方式将此新版本用于水平viewpager和setPagingEnabled(false)。请注意,您仍然可以通过标签与viewpager进行交互,它只会阻止滑动事件。