首页 > 解决方案 > Android导航组件popUpTo闪烁

问题描述

我想使用导航在 2 个状态之间进行简单转换,但我有 1 个问题:

当用户启动应用程序时,会出现一个欢迎屏幕,其中包含 1 个按钮,该按钮应进入登录屏幕。

用户单击该按钮后,他将进入登录屏幕,并且需要删除后台堆栈,因此当用户单击后退按钮时,他将完全退出应用程序而不是前一个屏幕。

我已经实现了这个工作流程并且它可以工作,但问题是在单击按钮后弹出堆栈对用户是可见的。

<?xml version="1.0" encoding="utf-8"?>
<navigation
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/welcome_nav"
    app:startDestination="@id/welcome_fragment">

    <fragment
        android:id="@+id/welcome_fragment"
        android:name="com.domain.example.WelcomeFragment"
        android:label="WelcomeFragment"
        tools:layout="@layout/welcome_screen">
        <action
            android:id="@+id/action_to_login_nav"
            app:destination="@id/access_nav"
            app:enterAnim="@anim/nav_default_enter_anim"
            app:exitAnim="@anim/nav_default_enter_anim"
            app:popUpTo="@id/welcome_fragment"
            app:popUpToInclusive="true" />
    </fragment>

    <include app:graph="@navigation/login_nav" />

</navigation>

PS。我的意思是说后台堆栈的弹出是可见的:在很短的时间内登录目标是可见的,然后以前的目标再次可见,然后登录目标再次可见,这发生得很快,但是随着过渡动画它可见状态闪烁。

标签: androidandroid-architecture-navigation

解决方案


推荐阅读