【问题标题】:ViewPager and Sliding Menu swipe propagationViewPager 和滑动菜单滑动传播
【发布时间】:2013-08-23 18:40:20
【问题描述】:

在一个 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 Pager 上滑动不会传播到滑动菜单的方式来实现吗?

我尝试在pager的OnTouchListener中返回true,但是滑动菜单还在打开,现在slider已经不起作用了。

            viewPager.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            return true;
        }
    });

感谢您的帮助

【问题讨论】:

    标签: java android android-viewpager


    【解决方案1】:

    检查接受的答案here

    可以配置 feinstein 滑动菜单,使其仅对从屏幕边缘开始的手势作出反应。这应该允许您的其他处理程序成为源自屏幕最边缘的任何地方的滑动的唯一代表。

    相信你可以在“class BaseActivity extends SlidingFragmentActivity”中设置这些

    【讨论】:

      【解决方案2】:

      我有更好的解决方案:

      为您的 ViewPager 设置 OnTouchListener 并在 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;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-02
        • 2013-05-28
        • 2013-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多