我在工具栏中有一个带有项目选项菜单的片段。我想通过单击过滤器菜单项来执行到 FilterFragment 的导航。我可以使用导航图还是需要使用片段管理器?甚至可以使用导航图吗?请解释一下!
导航图:
filter_menu
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/filterListFragment"
android:icon="@drawable/ic_filter_icon"
android:title="@string/filters"
app:showAsAction="always" />
</menu>
导航图
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/cocktailListFragment">
<fragment
android:id="@+id/cocktailListFragment"
android:name="com.example.coctaildb.cocktaillist.CocktailListFragment"
android:label="CocktailListFragment"
tools:layout="@layout/cocktail_list_fragment">
<action
android:id="@+id/action_cocktailListFragment_to_filterListFragment"
app:destination="@id/filterListFragment" />
</fragment>
<fragment
android:id="@+id/filterListFragment"
android:name="com.example.coctaildb.filter.FilterListFragment"
android:label="FilterListFragment"
tools:layout="@layout/filters_fragment"/>
</navigation>
我已经尝试使用导航组件,但我不明白它需要什么视图
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.filter_menu, menu)
super.onCreateOptionsMenu(menu, inflater)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return NavigationUI.onNavDestinationSelected(item,
view.findNavController())
|| super.onOptionsItemSelected(item)
}
查看错误:
AS 提供的所有变体似乎都不起作用。