如何解决Android导航组件将参数传递给抽屉式导航条目
我正在将Android导航组件与抽屉菜单一起使用。我的工具栏包含一个微调器元素。我只能访问MainActivity.java上的spinner-element。现在,我想将微调器的用户选择传递给抽屉菜单项。
NavController(位于MainActivity.java中)
// set up navigation
navController = Navigation.findNavController(this,R.id.nav_host_fragment);
NavigationUI.setupWithNavController(binding.navView,navController);
// top level dest
Set<Integer> topLevelDest = new HashSet<>();
topLevelDest.add(R.id.nav_foo);
topLevelDest.add(R.id.nav_bar);
appBarConfiguration =
new AppBarConfiguration.Builder(topLevelDest).setDrawerLayout(binding.drawerLayout)
.build();
NavigationUI.setupWithNavController(binding.toolbar.toolbar,navController,appBarConfiguration);
这是我的MainActivity.xml,其中包括一个Drawerlayout,NavHostFragment和CustomToolbar:
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/drawer_navigation" />
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:menu="@menu/drawer_menu" />
</androidx.drawerlayout.widget.DrawerLayout>
这是我的导航图:
<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/drawer_navigation"
app:startDestination="@id/nav_foo">
<fragment
android:id="@id/nav_foo"
android:name="FooFragment"
tools:layout="@layout/fragment_foo"/>
<fragment
android:id="@id/nav_bar"
android:name="BarFragment">
</fragment>
<fragment
android:id="@+id/nav_A"
android:name="AFragment"
tools:layout="@layout/fragment_A" />
</navigation>
我可以通过binding.toolbar.spinner在MainActivity中访问微调器
现在,我想将工具栏中的微调器(int)的选择传递给fragment_A,fragment_A也是DrawerNav-Entry,但没有顶级目标。
这有可能吗?
我暂时通过共享首选项解决了该问题
致谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。