2

我已经深入了解 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”基本上我需要知道设备宽度(或框架宽度)并让它在那里使用它。我想我需要在这里设置某种类型的回调,但我不确定如何进行。

非常感谢!

4

0 回答 0