【发布时间】:2015-07-09 18:58:28
【问题描述】:
我有一个具有以下层次结构的应用程序:
MainActivity (Shows list of dates)
|
ViewPagerFragment (Shows list of children for those dates)
|
ChildFragment (Detail View)
我正在尝试从设计支持库中实现导航视图,但无法让工具栏上的实际导航正常工作。
这里是主活动工具栏:
这是从主活动导航到那里后的 ViewPagerFragment,注意没有返回按钮...
这是所需的工具栏:
我正在使用以下代码添加片段:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, fragment, fragment.getClass().getName())
.addToBackStack(fragment.getClass().getName())
.commitAllowingStateLoss();
下面是activity启动相关的代码:
protected void setupActionBar() {
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
还有我的导航抽屉设置:
protected void setupNavigationDrawer() {
navigationView.setNavigationItemSelectedListener(this);
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.setDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
}
点击设备上的硬件后退按钮可以正确导航回来。我似乎无法让后退箭头显示在抽屉切换开关上......有什么建议吗?
【问题讨论】:
-
两个按钮靠得很近是很糟糕的设计。 DrawerLayout 属于你的根 Activity,那么你打开的任何 Activity 都无法访问抽屉,而是有返回按钮返回根。
-
我认为您误解了我的要求。工具栏确实支持内置作为操作栏并显示汉堡包(用于导航抽屉打开)或后退按钮图标。在我切换到使用 android 设计支持库的导航视图之前,一切都以这种方式工作,但现在我已经切换工具栏不会像以前那样显示后退按钮。
-
是的,它可以显示抽屉菜单或返回按钮。我不认为你可以两者兼得。如果你有一个导航抽屉,那么你不能有后退按钮。否则,除非您明确控制活动中的图标和操作,否则工具栏应该如何知道要执行的操作。你在找什么?抽屉或后退按钮或控制两者的方法?
-
我更新了问题,我从不希望两个按钮同时出现 - 我不确定这是如何从问题中收集到的。当 backstack 中有碎片时,请参阅新附加的图片以获得所需的状态。
-
@jyanks 我面临着完全相同的问题,但找不到解决方案。你能帮我提示一下这里的一些代码吗?
标签: android navigation androiddesignsupport