【问题标题】:Sliding menu bar is over-riding ViewPager tabs. How to stop that from happening?滑动菜单栏覆盖 ViewPager 选项卡。如何阻止这种情况发生?
【发布时间】:2015-04-01 11:34:42
【问题描述】:

我将这个库用于我的滑动菜单。 https://github.com/jfeinstein10/SlidingMenu

我最大的问题是,我使用的是 ViewPagerIndicator。因此,假设我添加了三个选项卡到 viewpager,我在其中添加了 3 个片段,Tab1、Tab2、Tab3。

从右向左滑动时,我从 Tab1 转到 Tab2。在 Tab1 从左向右滑动时,会打开滑动菜单。

但是假设我在 tab2 中,我从左向右滑动。这应该打开选项卡 1 而不是滑动菜单,它在这里做的。

在我的 BaseActivity 中,这是我添加的代码:

    menu = new SlidingMenu(this);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    //menu.setShadowWidthRes(R.dimen.shadow_width);
    //menu.setShadowDrawable(R.drawable.shadow);
//  menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        menu.setMenu(R.layout.base_layout);


    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

当我不在 Tab1 中时,如何停止滑动菜单滑动?

【问题讨论】:

    标签: android


    【解决方案1】:

    您应该查看它提供的示例应用程序,示例总是为您提供意想不到的解决方案。

    yourViewPagerIndicator.setOnPageChangeListener(new OnPageChangeListener() {
        @Override
        public void onPageScrollStateChanged(int arg0) { }
    
        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) { }
    
        @Override
        public void onPageSelected(int position) {
            switch (position) {
                case 0:
                    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
                    break;
                default:
                    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
                    break;
            }
        }
    });
    

    【讨论】:

    • 这个答案必须选为正确的。谢谢@Chor WaiChun
    【解决方案2】:

    在标签布局中调用getSlidingMenu().setSlidingEnabled(false); 来停止滑动菜单的另一种方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      相关资源
      最近更新 更多