Android-如何使用片段中的选项菜单执行导航?

时间:2020-12-23 15:24:30

标签: android kotlin android-fragments navigation fragmentmanager

我在工具栏中有一个带有项目选项菜单的片段。我想通过单击过滤器菜单项来执行到 FilterFragment 的导航。我可以使用导航图还是需要使用片段管理器?甚至可以使用导航图吗?请解释一下!

导航图:

enter image description here

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

查看错误:

enter image description here

AS 提供的所有变体似乎都不起作用。

0 个答案:

没有答案