【问题标题】:Android Navigation Component - Unwanted blinking on screen navigationAndroid导航组件 - 屏幕导航上不需要的闪烁
【发布时间】:2021-03-10 09:30:25
【问题描述】:

我正在使用navigation 组件

'androidx.navigation:navigation-fragment-ktx:2.3.3'
'androidx.navigation:navigation-ui-ktx:2.3.3'

当我从 startDestination 导航到下一个 Fragment 时,我不明白为什么 我眨了眨眼,看到之前的活动持续了几毫秒。 当我导航到不同的片段时,不会发生这种情况。

无论有无导航动画,都会发生这种情况。 尝试在堆栈中没有以前的 Activity 并显示 OS 主屏幕。

navigation.xml 文件如下所示:

 <fragment
    android:id="@+id/barcodeScannerFragment"
    android:name="com.sightplan.sightplanmobile.feature.barcode_scanner.BarcodeScannerFragment"
    android:label="@string/receive_package_barcode_input_view_header_param_title"
    tools:layout="@layout/barcode_scanner_fragment_layout">

    <action
        android:id="@+id/open_receive_package_details"
        app:destination="@id/receivePackageDetailsFragment"
        app:enterAnim="@anim/slide_left_anim"
        app:exitAnim="@anim/wait_anim"
        app:popEnterAnim="@anim/wait_anim"
        app:popExitAnim="@anim/slide_right_anim" />
</fragment>
<fragment
    android:id="@+id/receivePackageDetailsFragment"
    android:name="com.sightplan.sightplanmobile.packages.receive_package.ReceivePackageDetailsFragment"
    android:label="@string/receive_package_activity_on_create_header_bar_title"
    tools:layout="@layout/receive_package_details_fragment_layout">
.......

navigation(完整)设计如下所示:

startDestination 导航到Receive Package 屏幕的代码在这里:

val action = BarcodeScannerFragmentDirections.openReceivePackageDetails()
            Navigation.findNavController(it).navigate(action)

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 请发布执行导航和导航图片段项目的代码(带有操作)。
  • @ShlomiKatriel 刚刚更新了问题,如果您需要其他任何信息,请告诉我
  • 请尝试将exitAnim 替换为app:exitAnim="@null"。如果能成功,说明@anim/wait_anim有问题
  • 正如我在问题中提到的,这种情况在没有动画的情况下也会发生。我删除了整个动画,问题仍然存在
  • 移除动画和放入@null动画是有区别的。删除动画将使用默认动画(至少据我所知)。

标签: android user-interface android-fragments uinavigationcontroller android-transitions


【解决方案1】:

问题是由于我在AndroidManifest.xml 内的navigation Activity 上设置了theme

我有一个自定义的AppTheme,其中android:windowIsTranslucent 设置为true

删除解决了问题。

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    相关资源
    最近更新 更多