[英]How to hide a navigation drawer icon in start destination fragment and show it next to start destination fragment for navigation graph
我将使用Navigation Graph开发一个具有单个活动和两个片段(LoginFragment和HomeFragment)的Android应用程序,并带有Navigation Drawer。
当我在活动中添加了Navigationdrawer
,它在LoginFragment
可见,但是我只想在LoginFragment
中显示汉堡图标,而不在HomeFragment
LoginFragment
。
如何在活动中添加导航抽屉而不将其添加到LoginFragment
我试图隐藏toolbar
val navController=this.findNavController(R.id.nav_host_fragment)
navController.addOnDestinationChangedListener{ nc: NavController, nd: NavDestination, _->
if(nd.id==nc.graph.startDestination){
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
binding.toolBar.visibility = View.GONE
}else{
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
NavigationUI.setupActionBarWithNavController(this,navController,drawerLayout)
binding.toolBar.visibility = View.VISIBLE
}
我只想在HomeFragment
显示汉堡包图标, HomeFragment
不是LoginFragment
您可以在活动中创建用于隐藏和显示导航抽屉图标的函数,并在各自的片段中调用这些函数onCreateView
我认为您正在使用Kotlin。 但是我认为它与Java中的方法没有什么不同。 您可以从Java转换为Kotlin。 那就是我在Java中所做的。
((AppCompatActivity) getActivity()).getSupportActionBar().hide(); // to hide toolbar
((AppCompatActivity) getActivity()).getSupportActionBar().show(); //to show toolbar
您需要在片段中使用此代码。 例如,您可以设置... hide(); LoginFragment的onCreateView方法中的方法,之后可以设置... show(); HomeFragment的oncreateView中的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.