无法使用 Jetpack 导航导航到片段?
Could not navigate to fragment using jetpack navigation?
我想从 HomeFragment 导航到 DetailFragment
在 RecyclerView 项目中单击我正在调用 DetailFragment 和
它不工作,我看到它进入了 onClickListener 但它没有走得更远,也没有调用 DetailFragment
viewBinding.assetImage.setOnClickListener {
val bundle = bundleOf("owner" to "TestUser")
Navigation.createNavigateOnClickListener(R.id.detail_screen,bundle)
}
<fragment
android:id="@+id/home_screen"
android:name="HomeFragment"
android:label="@string/title_home"
tools:layout="@layout/fragment_home">
<action
android:id="@+id/action_home_screen_to_detailFragment"
app:destination="@id/detail_screen" />
</fragment>
<fragment
android:id="@+id/detail_screen"
android:name="DetailFragment"
android:label="DetailFragment"
tools:layout="@layout/fragment_detail">
<argument
android:name="owner"
app:argType="string" />
</fragment>
下面是适合您的解决方案,
val bundle = Bundle()
bundle.putString("owner", "TestUser")
if (it.findNavController().currentDestination?.id == R.id.home_screen) {
it.findNavController().navigate(R.id.action_home_screen_to_detailFragment, bundle)
}
您可以使用safeArgs 来传递数据。
This可以帮到你
- 你去你的导航xml文件
- Select 传递值的片段。
- 添加属性
构建 → 重建
然后就可以这样使用了
findNavController().navigate(MenuFragmentDirections.Action_menuFragment_to_servisFragment(param))
我想从 HomeFragment 导航到 DetailFragment 在 RecyclerView 项目中单击我正在调用 DetailFragment 和 它不工作,我看到它进入了 onClickListener 但它没有走得更远,也没有调用 DetailFragment
viewBinding.assetImage.setOnClickListener {
val bundle = bundleOf("owner" to "TestUser")
Navigation.createNavigateOnClickListener(R.id.detail_screen,bundle)
}
<fragment
android:id="@+id/home_screen"
android:name="HomeFragment"
android:label="@string/title_home"
tools:layout="@layout/fragment_home">
<action
android:id="@+id/action_home_screen_to_detailFragment"
app:destination="@id/detail_screen" />
</fragment>
<fragment
android:id="@+id/detail_screen"
android:name="DetailFragment"
android:label="DetailFragment"
tools:layout="@layout/fragment_detail">
<argument
android:name="owner"
app:argType="string" />
</fragment>
下面是适合您的解决方案,
val bundle = Bundle()
bundle.putString("owner", "TestUser")
if (it.findNavController().currentDestination?.id == R.id.home_screen) {
it.findNavController().navigate(R.id.action_home_screen_to_detailFragment, bundle)
}
您可以使用safeArgs 来传递数据。 This可以帮到你
- 你去你的导航xml文件
- Select 传递值的片段。
- 添加属性
构建 → 重建
然后就可以这样使用了
findNavController().navigate(MenuFragmentDirections.Action_menuFragment_to_servisFragment(param))