在Android应用中我使用左侧的滑动菜单:https://github.com/jfeinstein10/SlidingMenu
在其中一个活动中,我有一个ViewPager:
<android.support.v4.view.ViewPager
android:id="@+id/image_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
我从适配器在寻呼机中加载多个图像视图,以便在它们之间滚动。
但是我在滚动方面遇到了冲突。
当我向左滑动一切正常时,会显示下一个图像。
但是当我向右滑动时,滑动菜单会打开,因为它的行为。
我是否可以通过在View Viewr上滑动不会传播到滑动菜单的方式来制作它?
我试图在寻呼机的OnTouchListener中返回true,但滑动菜单仍在打开,现在滑块不再工作了。
viewPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return true;
}
});
感谢您的帮助
答案 0 :(得分:4)
检查已接受的答案here
可以配置英斯坦滑动菜单,使其仅对从屏幕边缘开始的手势做出反应。这应该允许你的其他处理程序成为滑动的唯一代表,它起源于不在屏幕的最边缘的任何地方。
我相信你可以在“类BaseActivity extends SlidingFragmentActivity”中设置这些
答案 1 :(得分:1)
我有更好的解决方案:
为您设置OnTouchListener ViewPager并在ACTION_DOWN上禁用SlidingMenu,在ACTION_UP和ACTION_CANCEL上启用SlidingMenu。
以下是代码:
ViewPager mPager;
// Find your SlidingMenu here.
SlidingMenu mSlidingMenu;
mPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mSlidingMenu.setSlidingEnabled(false);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
mSlidingMenu.setSlidingEnabled(true);
break;
}
return false;
}
}