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 回答