更新导航图之后,我们可以开始将元素绑定起来,并且实现导航到 SelectionFragment。
选项菜单
应用的选项菜单现在尚未发挥作用。要启用它,需要在 onOptionsItemSelected()
函数中,为被选择的菜单项调用 onNavDestinationSelected()
函数,并传入 navController
。只要目的页面的 id
和 MenuItem
的 id 相匹配,该函数会导航到绑定在 MenuItem
上的目的页面。
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return item.onNavDestinationSelected(
findNavController(R.id.nav_host_fragment)
) || super.onOptionsItemSelected(item)
}
现在导航控制器可以 “支配” 菜单项了,我将 MenuItem
的 id
与之前所创建的目的页面的 id
进行了匹配。这样,导航组件就可以将 MenuItem
与目的页面进行关联。
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
tools:context=“com.android.samples.donuttracker.MainActivity”>
<item
android:id=“@+id/selectionFragment”
android:orderInCategory=“100”
android:title=“@string/action_settings”
app:showAsAction=“never” />
Toolbar
现在应用可以导航到 selectionFragment
,但是标题仍然保持原样。当处于 selectionFragment
的时候,我们希望标题可以被更新并且显示返回按钮。
首先我需要添加一个 AppBarConfiguration
对象,NavigationUI
会使用该对象来管理应用左上角的导航按钮的行为。
appBarConfiguration = AppBarConfiguration(