【问题标题】:Multiple android-menudrawer in same activity同一活动中的多个 android-menudrawer
【发布时间】:2013-03-03 00:11:33
【问题描述】:

我正在使用来自https://github.com/SimonVT/android-menudrawer 的菜单抽屉。

当我尝试使用适当的手势从顶部和底部显示菜单时,我只得到一个响应。你知道在同一个活动中是否可以使用多个菜单吗?

    mMenuDrawer = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_CONTENT, Position.TOP);
    mMenuDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);
    mMenuDrawer.setContentView(R.layout.activity_main);
    mMenuDrawer.setMenuView(R.layout.mt_main);

    mMenuDrawer2 = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_CONTENT, Position.BOTTOM);
    mMenuDrawer2.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);
    mMenuDrawer2.setContentView(R.layout.activity_main);
    mMenuDrawer2.setMenuView(R.layout.mb_main);

【问题讨论】:

  • 您找到解决方案了吗?是否可以使用 MenuDrawer 为一个布局设置两个滑动抽屉?

标签: android android-activity menu drawer


【解决方案1】:

我在我的活动中使用了两个菜单抽屉,我按照以下方式使用它们(它对我有用)

mMenuDrawer = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_CONTENT, Position.TOP);
        mMenuDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);
        mMenuDrawer.setDropShadowEnabled(false);

mMenuDrawerRight = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_CONTENT, Position.RIGHT);
        mMenuDrawerRight.setTouchMode(MenuDrawer.TOUCH_MODE_BEZEL );
        mMenuDrawerRight.setTouchBezelSize(10);
        mMenuDrawerRight.setDropShadowEnabled(false);

【讨论】:

  • 我已经尝试过类似的方法,但无法正常工作,我确定我遗漏了一些明显的东西;你是如何设置 menuDrawers contentViews 的?
【解决方案2】:

如果库支持这样的事情MenuDrawer.TOUCH_MODE_FULLSCREEN 将无济于事...试试MenuDrawer.TOUCH_MODE_BEZEL

【讨论】:

    【解决方案3】:

    最后我检查了一下,MenuDrawer 并没有正式支持多个抽屉,除非可能使用某种 hack。 SlidngMenu 确实支持添加多个抽屉,无论你想要什么。我认为 MenuDrawer 性能更好,但 SlidingMenu 为您提供了更多选择和灵活性。

    【讨论】:

      【解决方案4】:

      可以将两个MenuDrawer(左右)附加到同一个活动

      MenuDrawer 的默认模式是MENU_DRAG_CONTENT,但我们需要使用MENU_DRAG_WINDOW

      注意:不要为 MenuDrawers 设置 ContentView

      //In onCreate() of the activity
      MenuDrawer slidingMenuLeft = MenuDrawer.attach(this, MenuDrawer.Type.OVERLAY, Position.LEFT, MenuDrawer.MENU_DRAG_WINDOW);
      slidingMenuLeft.setMenuView(R.layout.navigation_menu_left); // Set layout for Left menu
      
      MenuDrawer slidingMenuRight = MenuDrawer.attach(this, MenuDrawer.Type.OVERLAY, Position.RIGHT, MenuDrawer.MENU_DRAG_WINDOW);
      slidingMenuRight.setMenuView(R.layout.navigation_menu_right);  // Set layout for Right menu
      

      我还没有用触摸模式测试过这个MenuDrawer.TOUCH_MODE_FULLSCREEN

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-06
        • 1970-01-01
        • 2016-12-15
        • 2011-09-07
        • 1970-01-01
        • 2011-08-29
        相关资源
        最近更新 更多