我在显示 HomeAsUp 时遇到问题。我认为有一种方法可以将 NavColtroller 与 ActionBar 联系起来。所以我不需要为每个 Fragment 手动调整 Toolbar,主要是在使用包含返回上一屏时。
问问题
246 次
2 回答
1
我找到了答案
设置工具栏后,在活动中添加此命令:
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>
于 2019-07-26T08:50:07.230 回答
0
下面为我工作
布局文件
<ConstraintLayout>
<Toolbar>
<fragment>
</ConstraintLayout>
里面的activity.java
private fun setUpToolbar() {
toolBar = findViewById(R.id.toolbar)
toolBar.inflateMenu(R.menu.menu)
setSupportActionBar(toolBar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)
}
于 2019-07-26T08:50:45.843 回答