gpt4 book ai didi

Android 导航组件 - 从 "anywhere"/base fragment 导航?

转载 作者:行者123 更新时间:2023-12-04 23:41:25 26 4
gpt4 key购买 nike

我正在开发一个应用程序,它有一个古怪的噱头,可以在设备旋转时打开特定的 fragment 。在实现 android 的导航组件之前,所需要的只是对当前 Activity 的引用,并且可以在特定时刻向用户显示的任何内容之上执行手动 fragment 事务。
但是在转向导航组件之后,我发现很难实现像上面的例子这样的通用东西,或者(例如)如何从基础 fragment 类中显示一个简单的对话框。
有没有一种行之有效的方法来编写这种逻辑?
“SpecificFragment.kt”扩展“BaseFragment.kt”
BaseFragment.kt 可以托管所有通用逻辑来启动 fragment 。通用 fragment 逻辑仍然存在于 BaseFragment 中,但 BaseFragment(一个抽象类)不在导航图中(也不应该是(?)。因此,我不能从任何 fragment 中调用“BaseFragmentDirections.actionXXXX()”。
这个应该怎么写?

最佳答案

您要实现的是 global action .
在导航图中创建一个全局操作。像这样:

<?xml version="1.0" encoding="utf-8"?>
<navigation
android:id="@+id/navigationGraph"
...>

...

<action android:id="@+id/moveToSpecificFragment"
app:destination="@id/specificFragment"/>

</navigation>
在你的基础 fragment 中使用它:
findNavController().navigate(NavigationGraphDirections.moveToSpecificFragment())
注:全局操作的 Directions 类将对应于导航图的 id

关于Android 导航组件 - 从 "anywhere"/base fragment 导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63920473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com