[英]Reverse enter and exit animation for RTL layout - Android Navigation Component
我正在使用 Android 导航架构组件在片段之间导航。 我已经为片段目的地之一设置了进入和退出 animation。 Animation 工作正常,从左到右和从右到左的布局都一样。 我需要这个 animation 应该考虑 RTL 布局的相反边缘,即start
和end
属性做什么而不是left
和right
。 实现相同目标的最简单方法是什么?
<fragment
android:id="@+id/sign_in_fragment"
android:name="com.example.SignInFragment">
<action
android:id="@+id/action_sign_up"
app:destination="@id/sign_up_fragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"/>
</fragment>
<fragment
android:id="@+id/sign_up_fragment"
android:name="com.example.SignUpFragment"/>
动画/slide_out_left
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="0"
android:toXDelta="-100%p" />
</set>
动画/slide_in_right
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0" />
</set>
使用数据绑定你可以做到这一点
<layout>
<data>
<variable
name="isRTL"
type="Boolean" />
</data>
<fragment
android:id="@+id/sign_in_fragment"
android:name="com.example.SignInFragment">
<action
android:id="@+id/action_sign_up"
app:destination="@id/sign_up_fragment"
app:enterAnim="@{isRTL ? @anim/slide_in_right : @anim/slide_out_left}"
app:exitAnim="@{isRTL ? @anim/slide_out_left : @anim/slide_in_right}"/>
</fragment>
</layout>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.