「メニュー展開」アニメーションを設定しています。展開オプションはRelativeLayout
、垂直方向に2つネストされていますLinearLayout
。はTranslateAnimation
周囲に適用されLinearLayout
、オプションを下から展開します。
問題は、最初にネストされたものだけRelativeLayout
が表示されることです。2つ目は、アニメーションなしで表示されます。
以下に、問題の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());