2012-04-25 76 views
0

我正在设置“菜单展开”动画。扩展选项为嵌套在垂直LinearLayout中的2 RelativeLayoutTranslateAnimation适用于周围的LinearLayout,并使选项从底部扩展。带嵌套布局的TranslateAnimation

问题是只显示第一个嵌套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()); 

回答

1

这里回答我的问题。 LayoutAnimationController将动画分发给所有ViewGroup孩子。如果我想将ViewGroup动画作为一个单一的实体,我必须做到以下几点:

panel.setAnimation(set); 
set.start();