我希望将片段之间的过渡设置为水平滑入和滑出。
问题是,现在我的objectAnimator
,我对valueTo
和valueFrom
字段进行了硬编码,如下所示:
slide_in_from_right.xml:
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:propertyName="x"
android:valueFrom="1280"
android:valueTo="0"
android:valueType="floatType" />
slide_out_to_left.xml:
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:propertyName="x"
android:valueFrom="0"
android:valueTo="-1280"
android:valueType="floatType" />
但这在所有设备上看起来并不好看。我怎么能像活动一样使用像100%
和0%
这样的值。我在某个地方看到我必须在我的片段中创建getX()
和setX()
方法,但我不确定如何实施它们。另外,如果是这样,我是否必须为我的所有片段实现方法,或仅针对FragmentActivity
?
答案 0 :(得分:0)
ObjectAnimator适用于绝对值。替代解决方案是使用视图动画,因为您可以指定分数
slide_right.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate android:fromXDelta="-100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="1000"/>
</set>
加载动画
Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_right);
view.startAnimation(animation);