Mat*_*ert 1 android android-jetpack-navigation
我正在开发一个应用程序,它有一个古怪的噱头,可以在设备旋转时打开特定的片段。在实现 android 的导航组件之前,所需要的只是对当前活动的引用,并且可以在特定时刻向用户显示的任何内容之上执行手动片段事务。
但是在转到导航组件之后,我发现很难实现像上面的示例或(例如)如何从基本片段类显示简单对话框的通用内容。
有没有一种行之有效的方法来编写这种逻辑?
“SpecificFragment.kt”扩展“BaseFragment.kt”
BaseFragment.kt 可以承载所有通用逻辑来启动片段。通用片段逻辑仍然存在于 BaseFragment 中,但 BaseFragment(一个抽象类)不在导航图中(也不应该是(?)。因此,我不能从任何片段调用“BaseFragmentDirections.actionXXXX()”。
这个应该怎么写?
您希望实施的是一项全球行动。
在导航图中创建全局操作。像这样:
<?xml version="1.0" encoding="utf-8"?>
<navigation
android:id="@+id/navigationGraph"
...>
...
<action android:id="@+id/moveToSpecificFragment"
app:destination="@id/specificFragment"/>
</navigation>
Run Code Online (Sandbox Code Playgroud)
在您的基本片段中使用它:
findNavController().navigate(NavigationGraphDirections.moveToSpecificFragment())
Run Code Online (Sandbox Code Playgroud)
注意:全局操作的 Directions 类将对应于导航图的 id
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |