有没有办法为Android AppCompat导航抽屉设置两个“向上”按钮(每侧一个)?

有没有办法为Android AppCompat导航抽屉设置两个“向上”按钮(每侧一个)?,android,android-layout,user-interface,android-drawable,android-appcompat,Android,Android Layout,User Interface,Android Drawable,Android Appcompat,我使用AppCompat导航抽屉构建了一个Android应用程序,一个在左边,一个在右边。我的问题是,如果是这样,人们会如何在标题栏上放置一个向上按钮,这样每个抽屉在标题栏的每一侧都有自己的按钮。我有以下代码: new DrawerToggle(this, getLeftDrawerLayout(), R.drawable.imgur_drawer_list_button_shape_left, R.string.open_drawer, R.string.close_drawer, getLe

我使用AppCompat导航抽屉构建了一个Android应用程序,一个在左边,一个在右边。我的问题是,如果是这样,人们会如何在标题栏上放置一个向上按钮,这样每个抽屉在标题栏的每一侧都有自己的按钮。我有以下代码:

new DrawerToggle(this, getLeftDrawerLayout(), R.drawable.imgur_drawer_list_button_shape_left, R.string.open_drawer, R.string.close_drawer, getLeftDrawerListView(), LeftDrawerDrawerArrayAdapter);

new DrawerToggle(this, getRightDrawerLayout(), R.drawable.imgur_drawer_list_button_shape_right, R.string.open_drawer, R.string.close_drawer, getRightDrawerListView(), RightDrawerDrawerArrayAdapter);
其中DrawerToggle扩展了android.support.v4.app.ActionBarDrawerToggle和R.drawable.imgur\u drawer\u list\u button\u shape\u左侧以及R.drawable.imgur\u drawer\u list\u button\u shape\u右侧根据需要位于可绘制资源目录中

此外,在activity onCreate方法中处理以下代码:

不幸的是,这只会产生一个只有左侧抽屉向上按钮图标的应用程序,它会做出反应,即滑入左右两个抽屉

请任何人提供帮助,并提供一种方法,使按钮在标题栏的两侧,每个按钮对应于其各自的抽屉

衷心感谢您
Piotr.

设计指南中从未规定两侧都有开关。有一种很简单的方法可以做到这一点,这真的是一团糟,但试一下吧

这包括覆盖溢出菜单项的功能,这意味着您将永远无法让它按预期工作

添加具有showAsAction=从不的菜单项,以确保始终具有溢出菜单项。 随心所欲地设计它 获取的视图引用如下所示:

将OnClickListener添加到视图引用匿名声明或字段。琐碎的

在onClick中切换抽屉

使用onDrawerSlideView drawerView、float slideOffset在ActionBarDrawerToggle中设置动画时设置可绘制对象的动画。基本上,它是离屏的,可拖动一半,通过滑动偏移的某些因素前后移动

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);

 public static View getOverflowButton(Activity a){
          View homeButton = a.findViewById(android.R.id.home);
            ViewParent parentOfHome = homeButton.getParent().getParent(); //ActionBarView is parent of home ImageView, see layout file in sources
            try{

        parentOfHome = parentOfHome.getParent();//get to ActionBarView;
        Class absActionBarView = parentOfHome.getClass().getSuperclass(); //ActionBarView -> AbsActionBarView class
        Field menuPresenter = absActionBarView.getDeclaredField("mActionMenuPresenter"); // ActionMenuPresenter is the object that calls openOverflowMenu() closeOverflowMenu()
        menuPresenter.setAccessible(true);                                    // and contains the overflow button view.
        Object menuPresenterView = menuPresenter.get(parentOfHome);
        Field overflowField = menuPresenterView.getClass().getDeclaredField("mOverflowButton");
         overflowField.setAccessible(true);
         View overFlowButtonView = (View) overflowField.get(menuPresenterView);
         return overFlowButtonView;              

  }
  catch(NoSuchFieldException e){
       Log.e("getOverflowButton()", e.getMessage());

   } catch (IllegalArgumentException e) {
       Log.e("getOverflowButton()", e.getMessage());
   } catch (IllegalAccessException e) {
       Log.e("getOverflowButton()", e.getMessage());
   }
    return null;
}