Kotlin 在导航抽屉示例中打开新片段
Kotlin opening new fragment in nav drawer example
我对 Kotlin 比较陌生,我正在尝试通过在我的片段中添加一个按钮来扩展导航抽屉示例,该按钮可以直接打开另一个片段,而无需 select 从导航抽屉中打开它。
这是我片段的 onCreateView
函数中的按钮侦听器:
addButton.setOnClickListener()
{
Toast.makeText(this.context,"ButtonPressed",Toast.LENGTH_SHORT).show()
this.activity.supportFragmentManager.beginTransaction().replace(R.id.mobile_navigation, R.layout.fragment2).commit()
}
我不确定我是否完全理解如何处理这个问题。该按钮工作正常并调用 toast,但我无法通过它来更改片段。
如有任何帮助,我们将不胜感激。
the template has a mobile_navigation.xml file with a "navigation" element.
Navigation Architecture components is used by default in recent android studio versions, so the navController
负责片段交易,而不是由 supportFragmentManager
手动进行
addButton.setOnClickListener() {
Toast.makeText(this.context,"ButtonPressed",Toast.LENGTH_SHORT).show()
val navHostFragment = requireActivity().supportFragmentManager
.primaryNavigationFragment as NavHostFragment
navHostFragment.navController.navigate(R.layout.fragment2)
}
此外,请确保 R.layout.fragment2
是 R.id.mobile_navigation.xml
中目标片段的片段 ID
我对 Kotlin 比较陌生,我正在尝试通过在我的片段中添加一个按钮来扩展导航抽屉示例,该按钮可以直接打开另一个片段,而无需 select 从导航抽屉中打开它。
这是我片段的 onCreateView
函数中的按钮侦听器:
addButton.setOnClickListener()
{
Toast.makeText(this.context,"ButtonPressed",Toast.LENGTH_SHORT).show()
this.activity.supportFragmentManager.beginTransaction().replace(R.id.mobile_navigation, R.layout.fragment2).commit()
}
我不确定我是否完全理解如何处理这个问题。该按钮工作正常并调用 toast,但我无法通过它来更改片段。
如有任何帮助,我们将不胜感激。
the template has a mobile_navigation.xml file with a "navigation" element.
Navigation Architecture components is used by default in recent android studio versions, so the navController
负责片段交易,而不是由 supportFragmentManager
addButton.setOnClickListener() {
Toast.makeText(this.context,"ButtonPressed",Toast.LENGTH_SHORT).show()
val navHostFragment = requireActivity().supportFragmentManager
.primaryNavigationFragment as NavHostFragment
navHostFragment.navController.navigate(R.layout.fragment2)
}
此外,请确保 R.layout.fragment2
是 R.id.mobile_navigation.xml