我正在设置“菜单展开”动画。展开选项是嵌套在垂直RelativeLayout
中的2 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());
答案 0 :(得分:1)
在这里回答我自己的问题。 LayoutAnimationController
将动画分发给所有ViewGroup
个孩子。如果我想将ViewGroup
设置为单个实体,我必须执行以下操作:
panel.setAnimation(set);
set.start();