0

我正在设置“菜单展开”动画。扩展选项是 2RelativeLayout嵌套在一个垂直的LinearLayout. TranslateAnimation应用于周围环境并使LinearLayout选项从底部扩展。

问题是只RelativeLayout显示第一个嵌套。第二个在没有动画的情况下变得可见。

下面是相关的 XML 布局、应用动画的方法和调用。非常感谢您的想法

<LinearLayout
    android:id="@+id/bmb_navigation_expanded"
    style="@style/bmb_RelativeLayout"
    android:layout_above="@id/bmb_bottom_bar"
    android:orientation="vertical"
    android:visibility="gone" >

    <RelativeLayout
        style="@style/bmb_RelativeLayout">

     option 1 stuff

    </RelativeLayout>

    <RelativeLayout            
        style="@style/bmb_RelativeLayout">

     option 2 stuff

    </RelativeLayout>

</LinearLayout>

将动画应用到 LinearLayout 的方法:

    public static void setSlideIn(ViewGroup panel, Context ctx) {

      AnimationSet set = new AnimationSet(false);

      Animation animation = new TranslateAnimation(
          Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
          Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f
      );
      animation.setDuration(200);
      set.addAnimation(animation);

      LayoutAnimationController controller = new LayoutAnimationController(set, 0);
      panel.setLayoutAnimation(controller);

    }

这就是我所说的动画:

        layout.setVisibility(View.VISIBLE);
        setSlideIn(layout, getActivity());
4

1 回答 1

1

在这里回答我自己的问题。LayoutAnimationController 将动画分发给所有ViewGroup孩子。如果我想将动画ViewGroup作为单个实体,我必须执行以下操作:

panel.setAnimation(set);
set.start();
于 2012-04-26T13:42:29.467 回答