gpt4 book ai didi

android - Android 中缺少 slide_in_right 和 slide_out_left 动画?

转载 作者:行者123 更新时间:2023-12-04 23:43:40 24 4
gpt4 key购买 nike

我正在尝试使用 Jetpack Navigation 组件。 docs here谈论动画过渡。示例代码使用动画 slide_in_rightslide_out_left并且默认情况下它们会在那里 - 没有关于如何创建它们的说明。

<action
...
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right" />
但是当我点击如下图的属性时,在导航图资源的设计 View 中,我只看到了 slide_in_leftside_out_right .为什么另外两个不在?
我的目标是制作一个类似推送/弹出的动画,其中新 View 从右侧进入,旧 View 从左侧移出。 (反向“弹出”回到导航堆栈。)
我确实看到了一些关于这些动画的其他问题,但它们的答案很旧,而且听起来可能存在错误,所以我想知道 2020 年现在的答案是什么。
enter image description here
enter image description here

最佳答案

可以在 SDK 中找到 slide_in_rigth 和 slide_out_left 动画,但是当我尝试从 XML 中使用时,我得到了这个错误:

AAPT: error: resource android:anim/slide_in_right is private.


所以我将动画的内容复制到我的资源文件中,如下所示:
enter image description here
这是我从 Android SDK 复制的动画内容。
对于 slide_in_right.xml:
 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="50%p" android:toXDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
对于 slide_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-50%p"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
现在它们可以与@animator 一起使用,所以我添加到我的navigation.xml 中,如下所示:
    <action
...
app:enterAnim="@animator/slide_in_right"
app:exitAnim="@animator/slide_out_left" />
它对我有用,我希望它对你有帮助。

关于android - Android 中缺少 slide_in_right 和 slide_out_left 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62923422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com