Android导航组件片段过渡有白色背景

时间:2019-07-01 16:02:38

标签: android android-fragments android-navigation jetpack

我正在使用Jetpack导航库,并且片段过渡存在问题,无论是淡入淡出还是幻灯片动画,它始终具有白色背景而不是先前的屏幕内容。

片段A->片段B,当动画运行时而不是将背景视为片段A时,它是白色背景。

导航

  <fragment
      android:id="@+id/nav_page"
      android:name="my.fragmenta"
      tools:layout="@layout/fragment_a">

    <action
        android:id="@+id/action_to_b"
        app:destination="@id/nav_b"
        app:enterAnim="@anim/slide_in_up"
        app:popExitAnim="@anim/slide_out_down"/>
  </fragment>

活动风格

  <style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:statusBarColor">@color/statusBarColor</item>
  </style>

动画文件

<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="100%p"
    android:toYDelta="0"
    android:duration="@android:integer/config_longAnimTime" />

<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="0"
    android:toYDelta="100%p"
    android:duration="@android:integer/config_longAnimTime" />

任何人都知道如何解决它?

1 个答案:

答案 0 :(得分:0)

经过多次尝试,我认为这是设置动画过渡的最佳方法:

<action
    android:id="@+id/id"
    app:destination="@id/dest"
    app:enterAnim="@anim/slide_in_bottom"
    app:exitAnim="@anim/slide_out_top"
    app:popEnterAnim="@anim/slide_in_top"
    app:popExitAnim="@anim/slide_out_bottom"/>

<action
    android:id="@+id/id"
    app:destination="@id/dest"
    app:enterAnim="@anim/slide_in_right"
    app:exitAnim="@anim/slide_out_left"
    app:popEnterAnim="@anim/slide_in_left"
    app:popExitAnim="@anim/slide_out_right"/>

您应该同时拥有四个事件才能使动画流畅。