0
 <ViewFlipper
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:measureAllChildren="false">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="100dp"/>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="200dp">
    </RelativeLayout>

</ViewFlipper>

我有视图脚蹼。改变视图的动画效果很好:

Animation slideDown = AnimationUtils.loadAnimation(getActivity(), android.R.anim.slide_in_left);
slideDown.setDuration(900);
Animation slideUp = AnimationUtils.loadAnimation(getActivity(), android.R.anim.slide_out_right);
slideUp.setDuration(300);

mReceiverFlipper.setInAnimation(slideDown);
mReceiverFlipper.setOutAnimation(slideUp);

我的问题是我无法垂直设置我的FlipperView动画。由于两个子视图具有不同的高度。当我在调整他childViewsfipperView高度时在没有animation.

那么,当 FlipperView 的大小发生变化时,我该如何为其设置动画呢?

4

1 回答 1

0

您可以使用该android:animateLayoutChanges属性。

android:animateLayoutChanges在 ViewFlipper 上添加属性并将其设置为 true。( <ViewFlipper android:animateLayoutChanges="true" ...)

然后在您的代码中,您需要添加此行以启用动画:

((ViewFlipper) findViewById(/* your viewflipper id here*/)).getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING)

或在 Kotlin 中:

findViewById<ViewFlipper>(/* your viewflipper id here*/).layoutTransition.enableTransitionType(LayoutTransition.CHANGING)

来源:https ://proandroiddev.com/the-little-secret-of-android-animatelayoutchanges-e4caab2fddec

于 2020-06-18T12:18:47.003 回答