1

FrameLayoutカバーしているいくつかの UI 要素を持つ がありListViewます。ボタンをクリックしてFrameLayoutスライドを上に上げて、下のリストを表示したい。

これまでのところ、トップ レイアウトを上にスライドさせることができますが、サイド アニメーションの後、すぐに元の場所に戻ります。

 public void showHistory(View v) {

     FrameLayout mainView = (FrameLayout)findViewById(R.id.mainView);
     Animation slideUp = setLayoutAnim_slideup(); 
     mainView.startAnimation(slideUp);

 }

 public Animation setLayoutAnim_slideup() {

        AnimationSet set = new AnimationSet(true);

        Animation animation = new TranslateAnimation(
                Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
                0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
                Animation.RELATIVE_TO_SELF, -0.8f);
        animation.setDuration(400);
        set.addAnimation(animation);

        return animation;

}

アニメーションが停止したのと同じ場所にとどまらせるにはどうすればよいですか?

4

1 に答える 1

4

に追加animation.setFillAfter(true)しますsetLayoutAnim_slideup()。関数。

編集-

public void showHistory(View v) {

        FrameLayout mainView = (FrameLayout) findViewById(R.id.mainView);
        AnimatorSet set = new AnimatorSet();
        // Using property animation
        ObjectAnimator animation = ObjectAnimator.ofFloat(mainView,
                "translationY", 0f, -0.8f);
            animation.setDuration(2000);
        set.play(animation);
        set.start();

    }
于 2013-09-18T06:59:22.963 に答える