Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 后退按钮未使用导航视图和工具栏显示_Android_Navigation_Androiddesignsupport - Fatal编程技术网

Android 后退按钮未使用导航视图和工具栏显示

Android 后退按钮未使用导航视图和工具栏显示,android,navigation,androiddesignsupport,Android,Navigation,Androiddesignsupport,我有一个具有以下层次结构的应用程序: MainActivity (Shows list of dates) | ViewPagerFragment (Shows list of children for those dates) | ChildFragment (Detail View) 我试图从design support库中实现导航视图,但在使工具栏上的实际导航正常工作时遇到问题 以下是主活动工具栏: 这是从主活动导航到那里后的ViewPagerFragment,请

我有一个具有以下层次结构的应用程序:

MainActivity (Shows list of dates) 
    | 
ViewPagerFragment (Shows list of children for those dates)
    | 
ChildFragment (Detail View)
我试图从design support库中实现导航视图,但在使工具栏上的实际导航正常工作时遇到问题

以下是主活动工具栏:

这是从主活动导航到那里后的ViewPagerFragment,请注意,没有后退按钮

以下是所需的工具栏:

我使用以下代码添加片段:

    getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.content_frame, fragment, fragment.getClass().getName())
            .addToBackStack(fragment.getClass().getName())
            .commitAllowingStateLoss();
以下是与“活动启动”相关的代码:

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();
}

点击设备上的“硬件返回”按钮可正确返回。我就是不能让后面的箭头出现在抽屉的开关上。。。有什么建议吗?

您是否尝试访问活动的操作栏

在onViewCreated中:

Toolbar mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
((Activity) getActivity()).setSupportActionBar(mToolbar);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);

要禁用导航抽屉图标并显示其他图标,您需要调用
ActionBarDrawerToggle


您可能还需要调用来指定要使用的图标,而不是“汉堡包”图标。

如果两个按钮靠得这么近,设计会很糟糕。DrawerLayout属于您的根活动,那么您打开的任何活动都无法访问该抽屉,而是有返回按钮返回到根。我认为您误解了我的要求。工具栏具有内置的支持功能,可作为操作栏显示汉堡(用于打开导航抽屉)或后退按钮图标。在我切换到使用android design support library的导航视图之前,一切都是这样工作的,但现在我切换了工具栏,工具栏将不再像以前那样显示后退按钮。是的,它可以显示抽屉菜单或后退按钮。我认为你不能两者兼得。如果你有一个导航抽屉,那么你不能有后退按钮。否则,除非您明确控制活动中的图标和操作,否则工具栏如何知道要执行的操作。你在这里找什么?抽屉按钮或后退按钮,还是控制两者的方法?我更新了问题,我从不希望两个按钮同时出现-我不确定这是如何从问题中收集到的。当Backback中有碎片时,请参见新附加的图片以了解所需的状态。@jyanks我面临完全相同的问题,无法找到解决方案。你能帮我提示一下这里的一些代码吗?嗨@guillaume\u fr,这些代码在创建时的主要活动调用中。