0

「メニュー展開」アニメーションを設定しています。展開オプションは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());
4

1 に答える 1

1

ここで私自身の質問に答えます。LayoutAnimationController アニメーションをすべての子に配布しViewGroupます。ViewGroupを単一のエンティティとしてアニメーション化する場合は、次のことを行う必要があります。

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