RTL布局的反向输入和退出动画-Android导航组件
我使用Android导航架构组件在片段之间进行导航。我已经为片段目的地之一设置了进入和退出动画。动画工作正常,并且对于从左到右和从右到左的布局都是相同的。我需要这个动画应该考虑RTL布局的相对边缘,即什么<代码>开始< /代码>和<代码>结束<代码>属性,而不是<代码>左< /代码>和<代码>右< /代码>。实现同样目标的最简单方法是什么RTL布局的反向输入和退出动画-Android导航组件,android,xml,animation,navigation,android-architecture-navigation,Android,Xml,Animation,Navigation,Android Architecture Navigation,我使用Android导航架构组件在片段之间进行导航。我已经为片段目的地之一设置了进入和退出动画。动画工作正常,并且对于从左到右和从右到左的布局都是相同的。我需要这个动画应该考虑RTL布局的相对边缘,即什么开始< /代码>和结束属性,而不是左< /代码>和右< /代码>。实现同样目标的最简单方法是什么 <fragment android:id="@+id/sign_in_fragment" android:name="com.example.Si
<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"/>
动画/滑出左
<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>
动画/幻灯片在右侧
<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>
就像您对不同密度版本的可绘制文件所做的一样,您可以在
anim ldrtl
中使用相同的anim
资源名称来使用资源的RTL版本,但交换行为
例如,res\anim ldrtl\
中的slide\u left.xml
将包含slide\u right.xml
的动画,依此类推
您可以在res
下创建anim ldrtl
目录,也可以使用Android studio:
右键单击res\anim
->新建->动画资源文件
您是否在应用程序中使用数据绑定?是。虽然这个动画应该独立工作@普里扬卡格比:我认为没有直截了当的道路,至少我不知道。因此,您可能必须创建一个单独的文件来反转它,并根据LocaleThanks使用它来进行回复。如果存在布局文件,此解决方案(条件语句)似乎有效。我有
navigation
(navGraph),我想唯一支持的根标记是navigation
,并且layout
和data
标记在此文件中是允许的。