android - 我如何在android中使用导航栏和导航图
问题描述
我在一个项目中使用导航图和导航栏,我想在其中一个底部使用主机导航。但代码不起作用。实际上,当我将 androidx.navigation.Navigation 导入到导致应用程序崩溃的片段时。id 如何解决这个问题?在这里我写了如何更改片段和部分代码使在此处输入图像描述错误。
// The part of code that makes error
navController = Navigation.findNavController(view)
view.findViewById<Button>(R.id.id_postBtn).setOnClickListener(this)
// how i change fragment
private fun replaceFrag(frag: Fragment){
val fragTran = supportFragmentManager.beginTransaction()
fragTran.replace(R.id.container, frag)
fragTran.commit()
}
解决方案
在导航图中,您必须在源片段下设置一个操作。喜欢 :
<action
android:id="@+id/search_action"
app:destination="@+id/destinationFragmentId" />
在这里,动作标签的id很重要。现在在源代码片段中,您必须更改按钮单击侦听器,例如yourButton.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.search_action));
看这里 id 与 action 标签的 id 相同。
并且无需替换片段或提交片段。所有人都会照顾您的导航图。首先在导航图中设计正确的地图。
欲了解更多信息,您可以访问这里
推荐阅读
- java - 在没有 maven 和 Ide 的情况下创建 Project Java Web
- node.js - Mongo userAdminAnyDatabase 无法在其他数据库中创建用户
- ios - 应用程序在模拟器上的显示与故事板上的不同
- c# - 从 Mapsui/SkiaSharp 打印
- data-visualization - qlik 意义上的框附近不需要的工具提示
- c# - 强类型会破坏 HTTP PUT 吗?
- python - 让用户输入采用字符串和整数?(Python)
- algorithm - 从 n^2 降低时间复杂度
- sql - PostgreSQL:使用 Generate_Series() 计数 0
- api - 如何在 DDD 中使用外部服务