Android - 幻灯片FrameLayout并让它停止

时间:2013-09-18 06:34:26

标签: java android android-animation

我有一个FrameLayout,其中包含一些覆盖ListView的UI元素。我想点击一个按钮,然后向上滑动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;

}

我怎样才能让它停留在动画停止的同一个地方?

1 个答案:

答案 0 :(得分: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();

    }