我已经深入了解 android 了一天,所以如果有什么完全不寻常的地方,请纠正我,但这是我的问题。
我有一个框架,我在其中交换片段,如下所示:
Fragment f = ... //defined elsewhere
FragmentManager fm1 = getFragmentManager()
FragmentTransaction ft1 = fm1.beginTransaction();
ft1.setCustomAnimations(R.animator.slide_in_left,
R.animator.slide_out_right);
ft1.replace(R.id.content_layout, f)
.addToBackStack(null)
.commit();
我定义了两个自定义动画,slide_in_left 和 slide_out_right,就像这样(另一个只是相反的尺寸):
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="x"
android:valueType="floatType"
android:valueFrom="-800"
android:valueTo="0"
android:duration="500" />
</set>
这一切都很好,如果我手动编码正确的值,看起来还不错。我不确定我应该如何设置“valueFrom”和“valueTo”基本上我需要知道设备宽度(或框架宽度)并让它在那里使用它。我想我需要在这里设置某种类型的回调,但我不确定如何进行。
非常感谢!