android - 如何在使用 Android 导航图时显示 HomeAsUp

标签 android android-navigation android-components android-navigation-graph

我在显示 HomeAsUp 时遇到了问题。我认为有一种方法可以将 NavColtroller 与 ActionBar 链接起来。所以我不需要为每个 fragment 手动调整工具栏,主要是在使用包含返回到上一个屏幕时。

最佳答案

我找到了答案

设置工具栏后在 Activity 中添加此命令:

NavigationUI.setupActionBarWithNavController(this, Navigation.findNavController(this, R.id.nav_host_fragment));

实际上这还不够.. 因为 HomeAsUp 将可见但不工作!

为了让它工作有必要覆盖这个方法:

@Override
public boolean onSupportNavigateUp() {
    return Navigation.findNavController(this, R.id.nav_host_fragment).navigateUp()
            || super.onSupportNavigateUp();
}

不要忘记在图表中设置适当的属性(popUpTo 和 popUpToInclusive):

 <fragment
    android:id="@+id/subFragment"
    ...
    >
    <action
        android:id="@+id/action_subFragment_pop"
        app:popUpTo="@id/homeFragment"
        app:popUpToInclusive="true" />
</fragment>

关于android - 如何在使用 Android 导航图时显示 HomeAsUp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57216342/

相关文章:

java - 如何从不扩展 Activity 的类创建 TimePicker,Android?

Android ViewModel 附加参数

跨 Activity 的 Android 组件 ViewModel

java - 如何从 MainActivity 运行方法到我的值类?

android - 如何将 MoPub 集成到 Android Studio 的共享库中

android - 当我选择其他项目时,BottomNavigationView 中的第一项保持突出显示

android - 错误 : I can click under the navigation drawer

android - AS 3.5 中的 lint 无法识别 SafeArgs 生成的类(方向/参数)

android - 如何将我的 NDK 项目拆分为 lib 和 app