我想在一些片段中隐藏bottomNavigationView。
我尝试了下面的代码,但它会产生闪烁效果。(bottomNavigationView在下一个片段变得可见之前就被隐藏了。)
我尝试了下面的代码,但它会产生闪烁效果。(bottomNavigationView在下一个片段变得可见之前就被隐藏了。)
val navController = this.findNavController(R.id.nav_host_home)
navController.addOnDestinationChangedListener { _, destination, _ ->
when (destination.id) {
R.id.searchArticlesFragment -> bnvMain.visibility = View.GONE
R.id.articleFragment -> bnvMain.visibility = View.GONE
else -> bnvMain.visibility = View.VISIBLE
}
}
我也尝试了另一段代码,但它调整了片段大小,并在目标片段中产生了OutOfMemoryException。
supportFragmentManager.registerFragmentLifecycleCallbacks(object :
FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentViewCreated(
fm: FragmentManager,
f: Fragment,
v: View,
savedInstanceState: Bundle?
) {
when (f) {
is SearchArticlesFragment -> bnvMain.visibility = View.GONE
is ArticleDetailsFragment -> bnvMain.visibility = View.GONE
else -> bnvMain.visibility = View.VISIBLE
}
}
}, true)
请帮我找到最好的方法来隐藏bottomNavigationView?这是唯一可以隐藏bottomNavigationView的方式吗?Youtube和Instagram是如何实现此行为的?
onActivityCreated()
方法更改为onStart()
,因为当我返回到上一个片段时,onStart()
是触发的方法(不知道为什么,但官方文档说onCreateView()
会调用)。但我解决了我的问题。再次感谢您 :) - Milan Thakor