如何在android中以编程方式在片段之间导航?

Posted

技术标签:

【中文标题】如何在android中以编程方式在片段之间导航?【英文标题】:How to navigate between fragment programatically in android? 【发布时间】:2021-04-15 10:07:09 【问题描述】:

背景:我通过选择 Navigation Drawer 模板和我的 MainActivity extends AppCompatActivity 创建了项目。

问题:我需要遍历/导航到另一个 UI 片段(比如说FragmentA),以便在单击 UI fragmentB 中的按钮时获得结果。类似于startActivityForResult

我在MainAcitivty 中将navController 声明为公共变量,并尝试在片段中访问它并执行navController.navigate(MENU_ID);,但没有成功。

有什么建议可以实现吗?

【问题讨论】:

当我必须使用它时它对我有用greenrobot.org/eventbus 【参考方案1】:

您必须使用导航操作 ID 调用 navigate 或传递由 safeArgs 插件生成的 NavDirections 对象。这里有一个articlesafeArgs的使用方法

安全参数示例

navController.navigate(
    MoviesFragmentDirections.actionMoviesFragmentToMovieDetailFragment(movieId)
)

操作 ID 示例

navController.navigate(
    R.id.action_movies_fragment_to_movie_detail_fragment
)

【讨论】:

以上是关于如何在android中以编程方式在片段之间导航?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将片段添加到android中的框架布局

如何在两个片段之间传递位图? (我正在使用 Android 导航组件)

如何在android中以编程方式将铃声添加到本机应用程序联系人

在片段中以编程方式在视图中包含布局

如何在Android中的主/细分片段之间进行适当的导航?

以编程方式嵌套的片段不反映导航上的父生命周期