Yas*_*n99 5 android android-fragments android-jetpack android-architecture-navigation
我正在使用 Android 导航组件并面临一个奇怪的问题。无论我尝试什么,我都无法清除向上按钮的返回堆栈。
我的导航图如下所示:
让我们以 LoginFragment 为例,
<fragment
android:id="@+id/loginFragment"
android:name="com.yashovardhan99.firebaselogin.LoginFragment"
android:label="Login"
tools:layout="@layout/fragment_login" >
<action
android:id="@+id/action_loginFragment_to_welcomeFragment"
app:destination="@id/welcomeFragment"
app:popUpTo="@+id/nav_graph"
app:popUpToInclusive="true" />
</fragment>
Run Code Online (Sandbox Code Playgroud)
要导航的 Java 代码是:
navController.navigate(
LoginFragmentDirections.actionLoginFragmentToWelcomeFragment());
Run Code Online (Sandbox Code Playgroud)
我已将 PopUpTo 设置为图形 ID,并将 Inclusive 设置为 true。移动到 WelcomeFragment 时,这应该清除返回堆栈。但是,WelcomeFragment 仍然在操作栏上显示向上按钮,按下它会将我带回 PreLoginFragment(这是图表的主目的地)。奇怪的是,按后退按钮让我按预期退出了应用程序。
我用它解决了AppBarConfiguration
val appBarConfiguration = AppBarConfiguration
.Builder(
R.id.preLoginFragment,
R.id.welcomeFragment
)
.build()
Run Code Online (Sandbox Code Playgroud)
然后,setupActionBarWithNavController(this, navController)你需要调用setupActionBarWithNavController(this, navController, appBarConfiguration)
在这里,我声明了两个顶级片段,其中后退箭头不会显示在应用程序栏中。
| 归档时间: |
|
| 查看次数: |
441 次 |
| 最近记录: |