android - Android导航组件片段过渡具有白色背景
问题描述
我正在使用 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" />
任何人都知道如何解决它?
解决方案
经过多次尝试,我认为这是动画过渡的最佳方法:
<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"/>
您应该拥有所有四个事件才能获得流畅的动画。
推荐阅读
- c - 我无法通过打印在指定范围内具有唯一数字的所有 3 位数字来理解逻辑
- reactjs - 根据另一个选择框的值动态加载选择框的选项,但依赖选择不默认为第一个选项
- javascript - 如何使用 Chrome 扩展程序检测您是否在 Zoom 通话中
- list - F# 中没有 cons 运算符或 curried cons 函数?
- jenkins - 作业中的批量更新参数
- r - 使用 ggplot2 对绘图进行条件格式设置
- codeigniter-3 - Codeigniter 3 if 语句无法正常工作
- prolog - 划分列表代码片段我不明白
- r - 如何将分布拟合到 R 中的现有 CDF?
- c# - 在一个控件中使用 SelectedItem 和 SelectedValue