我有一个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;
}
我怎样才能让它停留在动画停止的同一个地方?
答案 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();
}