我刚刚更新了我的代码,以使用最新的 2.4.0-alpha05 作为导航组件,并且我在多个堆栈之间进行了自定义导航,我的主导航图就像我找到的文档一样。
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:startDestination="@+id/accounts"
android:id="@+id/bottom_nav">
<inclue app:graph="@navigation/accounts_tab_nav"/>
<include app:graph="@navigation/contact_tab_nav" />
<include app:graph="@navigation/profile_tab_nav" />
</navigation>
Run Code Online (Sandbox Code Playgroud)
我的大多数堆栈都通过从右到左的幻灯片进行动画处理。看起来,当我在第二个屏幕上时,比如说配置文件屏幕,然后切换到第一个选项卡,它会触发在配置文件选项卡中通向第二个屏幕的操作中定义的popEnter
en 。popExitAnim
就像这样:
<fragment
android:id="@+id/profileMain"
android:name="com.app.ProfileFragment"
tools:layout="@layout/fragment_profile">
<action
android:id="@+id/action_profileMain_to_secondFragment"
app:destination="@id/secondFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right" />
</fragment>
Run Code Online (Sandbox Code Playgroud)
但显然我希望在切换选项卡时使用(默认)淡入淡出动画。那么我应该怎么做呢?
我想在重新选择选项卡时弹出到堆栈的根目录。但我可能必须自己做?