无法在屏幕右侧实现导航抽屉 - Android / Java
Unable to Implement a Navigation Drawer on the Right Side of The Screen - Android / Java
我已经实现了 Navigation Drawer,它目前出现在屏幕的左侧 - 但是我希望它出现在屏幕的右侧(它的图标位于屏幕的右上角)屏幕也是如此 - 目前它位于左上角)。我发现以下 SO 文章解释了如何这样做:
然而,当我尝试实现代码时,导航抽屉仍然出现在左侧。
来源(片段):
@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布局Files/Source:
如果需要任何其他信息,我将非常乐意提供(我只是对为什么 NavBar 没有出现在屏幕右侧感到困惑)
LinearLayout
id="drawer" 上的 android:layout_gravity="start"
应设置为 android:layout_gravity="end"
。
旁注:此 XML 结构构造不佳,为什么 id="drawer" 和 id="left_drawer" ViewGroups
的兄弟姐妹 - 而不是嵌套?为什么 FrameLayout
id="content_frame" 是空的?
您的布局中实际上有左右导航抽屉(id : drawer 和 id : left_drawer)。我刚刚对其进行了测试,它们在左右滑动时都可以正常加载。
如果您想要在右侧显示汉堡图标,请隐藏现有的并添加另一个作为图像视图到您的工具栏。之后你可以绑定点击它并以编程方式打开你的导航抽屉。
我已经实现了 Navigation Drawer,它目前出现在屏幕的左侧 - 但是我希望它出现在屏幕的右侧(它的图标位于屏幕的右上角)屏幕也是如此 - 目前它位于左上角)。我发现以下 SO 文章解释了如何这样做:
然而,当我尝试实现代码时,导航抽屉仍然出现在左侧。
来源(片段):
@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布局Files/Source:
如果需要任何其他信息,我将非常乐意提供(我只是对为什么 NavBar 没有出现在屏幕右侧感到困惑)
LinearLayout
id="drawer" 上的 android:layout_gravity="start"
应设置为 android:layout_gravity="end"
。
旁注:此 XML 结构构造不佳,为什么 id="drawer" 和 id="left_drawer" ViewGroups
的兄弟姐妹 - 而不是嵌套?为什么 FrameLayout
id="content_frame" 是空的?
您的布局中实际上有左右导航抽屉(id : drawer 和 id : left_drawer)。我刚刚对其进行了测试,它们在左右滑动时都可以正常加载。
如果您想要在右侧显示汉堡图标,请隐藏现有的并添加另一个作为图像视图到您的工具栏。之后你可以绑定点击它并以编程方式打开你的导航抽屉。