登录 - 导航架构组件
Login - Navigation Architecture Component
-
android
-
up-button
-
android-navigationview
-
android-architecture-components
-
android-architecture-navigation
我使用 android 导航架构组件实现了对我的 LoginFragment 的条件导航。我现在面临的问题是,我想隐藏工具栏上的向上按钮,并在用户未登录时禁用任何应用内导航。
我希望能够通过一种 activity 方法来实现这一点,其中 Activity 设置应用内导航 UI 和 navController 就像 android向日葵演示,导航目的地为Fragments
我实现了这里描述的条件导航:
如何使用导航架构组件正确隐藏登录屏幕上的导航和向上按钮?
我不明白您所说的隐藏导航是什么意思,但我假设您的意思是隐藏抽屉布局。要隐藏向上按钮并锁定抽屉,请将以下内容添加到 MainActivity 的 onCreate 中。我正在使用科特林。
myNavController.addOnDestinationChangedListener { _, destination ->
if (destination.id == R.id.loginFragment) {
myDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
myToolbar.setVisibility(View.GONE)
} else {
myDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
myToolbar.setVisibility(View.VISIBLE)
}
要使向上按钮消失,请使用 myToolbar.setNavigationIcon(null)
,要使其返回,请使用 myToolbar.setNavigationIcon(R.id.my_icon)
我的方法是将登录页面添加到根集中
val navController = findNavController(R.id.main_nav_host)
val appBarConfiguration = AppBarConfiguration(setOf(R.id.home_dest,
R.id.user_dest,R.id.login_dest))
toolbar.setupWithNavController(navController, appBarConfiguration)
所以当你在登录页面时,没有后退按钮。
系统后退按钮可以覆盖 onBackPressed()
override fun onBackPressed() {
if (findNavController(R.id.main_nav_host).currentDestination?.id != R.id.next_dest)
super.onBackPressed()
}
}
对不起我的英语
android
up-button
android-navigationview
android-architecture-components
android-architecture-navigation
我使用 android 导航架构组件实现了对我的 LoginFragment 的条件导航。我现在面临的问题是,我想隐藏工具栏上的向上按钮,并在用户未登录时禁用任何应用内导航。
我希望能够通过一种 activity 方法来实现这一点,其中 Activity 设置应用内导航 UI 和 navController 就像 android向日葵演示,导航目的地为Fragments
我实现了这里描述的条件导航:
如何使用导航架构组件正确隐藏登录屏幕上的导航和向上按钮?
我不明白您所说的隐藏导航是什么意思,但我假设您的意思是隐藏抽屉布局。要隐藏向上按钮并锁定抽屉,请将以下内容添加到 MainActivity 的 onCreate 中。我正在使用科特林。
myNavController.addOnDestinationChangedListener { _, destination ->
if (destination.id == R.id.loginFragment) {
myDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
myToolbar.setVisibility(View.GONE)
} else {
myDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
myToolbar.setVisibility(View.VISIBLE)
}
要使向上按钮消失,请使用 myToolbar.setNavigationIcon(null)
,要使其返回,请使用 myToolbar.setNavigationIcon(R.id.my_icon)
我的方法是将登录页面添加到根集中
val navController = findNavController(R.id.main_nav_host)
val appBarConfiguration = AppBarConfiguration(setOf(R.id.home_dest,
R.id.user_dest,R.id.login_dest))
toolbar.setupWithNavController(navController, appBarConfiguration)
所以当你在登录页面时,没有后退按钮。
系统后退按钮可以覆盖 onBackPressed()
override fun onBackPressed() {
if (findNavController(R.id.main_nav_host).currentDestination?.id != R.id.next_dest)
super.onBackPressed()
}
}
对不起我的英语