Android ViewPager截取所有x轴onTouch事件。如何禁用? 范围
有一个包含两个片段的viewpager。其中一个片段有一个布局,它监听X轴上的触摸变化 问题 布局并没有得到几乎所有的动作。当触摸并沿X轴滑动时移动事件。 似乎viewpager有一个onInterceptTouchEvent返回true 问题: 覆盖viewpager的行为以使其与我的布局协同工作,这是真的吗?因此,最理想的情况是布局截取它上面的所有onTouch事件,viewpager管理其余的onTouch事件。谢谢 类似的情况(但不使用ViewPager),将其放在需要触摸事件的视图中对我有效。如果适用于您的用例,则添加对动作事件以外的动作事件的检查Android ViewPager截取所有x轴onTouch事件。如何禁用? 范围,android,ontouchlistener,android-viewpager,Android,Ontouchlistener,Android Viewpager,有一个包含两个片段的viewpager。其中一个片段有一个布局,它监听X轴上的触摸变化 问题 布局并没有得到几乎所有的动作。当触摸并沿X轴滑动时移动事件。 似乎viewpager有一个onInterceptTouchEvent返回true 问题: 覆盖viewpager的行为以使其与我的布局协同工作,这是真的吗?因此,最理想的情况是布局截取它上面的所有onTouch事件,viewpager管理其余的onTouch事件。谢谢 类似的情况(但不使用ViewPager),将其放在需要触摸事件的视图中对
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_MOVE) {
this.getParent().requestDisallowInterceptTouchEvent(true);
return true;
} else {
return super.onTouchEvent(event);
}
}
你是对的,我相信每个滚动容器都会拦截触摸事件,但你可以阻止它。您可以在布局上放置触摸式侦听器:
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
pager.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
pager.requestDisallowInterceptTouchEvent(false);
break;
}
}
我也有类似的问题 在我的例子中,我在
ViewPager
上设置了一个OnTouchListener
,但当接收到触摸的孩子设置了onClick
时,它没有接收触摸事件
我所做的是扩展ViewPager类,并在方法onInterceptTouchEvent(boolean)
中调用我的click listener,它工作得很好。小心不要截获错误的事件。中微子是对的
getParent().requestDisallowInterceptTouchEvent(true);
一旦viewpager访问touchEvent截取,其中的子视图就可以获取事件。
我在viewpager中使用FrameLayout来获得抽屉布局效果(我需要它与屏幕高度不匹配,所以我不能使用抽屉布局或导航抽屉)。
这真的很有帮助 谢谢!我应该对android文档更加耐心和小心。这只在onTouch中有效吗?我试过这个,但它仍然在拦截我的触摸。您不必保留对寻呼机的引用-调用
getParent().request…
就足够了,父级将传播请求。它使其在自定义视图中使用更加灵活。2.起初,我认为在启动时为视图调用一次request…
就足够了。似乎每次触摸事件都必须调用它。这就是为什么你必须这样做onTouch()
@dev_android当用户在我的图像上水平滑动时,这阻止了选项卡切换。令人惊叹的!如果在浏览侦听onTouch事件的布局时,通过调用寻呼机适配器上的notifyDataSetChanged来更新ViewPager的内容,则它将不再工作!然后,ViewPager将翻转。有人知道这个问题的解决方案吗?这是正确的解决方案,但是我想指出的是,如果不返回true,ViewPager(或任何中间视图组)仍将处理此事件。如果返回false,事件未经处理,将传播回ViewPager。我在片段视图中使用了列表,该视图由ViewPager处理…我也面临相同的问题…如果开始滑动…它开始向x方向轻微移动…我也尝试了@neutrino…但问题仍然是一样的…有任何建议/想法吗?此外,我正在使用中的Listview片段…所以我不得不要求RequestDisallowWinterCeptTouchEvent对列表视图也为true…但现在它很忙…因为它拦截列表事件的单击事件…有任何建议/更新吗?这里也有一些有趣的事情