无法在屏幕右侧实现导航抽屉 - Android / Java

时间:2015-07-08 20:59:59

标签: java android xml navigation-drawer

我已经实现了导航抽屉,它当前出现在屏幕的左侧 - 但是我希望它出现在屏幕的右侧(屏幕右上角有它的图标)同样 - 目前它在左上角)。我找到了以下SO文章,解释了如何执行此操作:

http://stackoverflow.com/questions/18547277/how-to-set-navigation-drawer-to-be-opened-from-right-to-left/19358114#19358114

然而,当我尝试实现代码时,导航抽屉仍然出现在左侧。

来源(摘录):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ss_home);

...

     mDrawerList = (ListView) findViewById(R.id.drawer_list);
     mDrawer = ( LinearLayout) findViewById(R.id.drawer);

     mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);

      mAdapter = new SimpleAdapter(this, mList, R.layout.drawer_layout, from, to);
     mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.icon_list_top_right , R.string.drawer_open){

         @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                if (item != null && item.getItemId() == android.R.id.home) {
                    if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {
                        mDrawerLayout.closeDrawer(Gravity.RIGHT);
                    } else {
                        mDrawerLayout.openDrawer(Gravity.RIGHT);
                    }

                }
                return false;
            }

XML布局文件/来源:

http://pastebin.com/NhskGCCB

如果需要任何其他信息,我将非常乐意提供它(我只是难以理解为什么NavBar没有出现在屏幕的右侧)

2 个答案:

答案 0 :(得分:0)

android:layout_gravity="start" id =“抽屉”上的LinearLayout应设为android:layout_gravity="end"

旁注:这个XML结构构造不好,为什么id =“drawer”和id =“left_drawer”ViewGroups的兄弟姐妹 - 而不是嵌套?为什么FrameLayout id =“content_frame”为空?

答案 1 :(得分:0)

你的布局中实际上有左右导航抽屉(id:抽屉和id:left_drawer)。我刚刚对它进行了测试,并且左右滑动都能正常加载。

如果要在右侧显示汉堡图标,请隐藏现有图标并将另一个作为图像视图添加到工具栏中。之后,您可以绑定它并以编程方式打开导航抽屉。