在onViewCreate
中,我在屏幕后面设置了视图:
holderMenus.post(new Runnable() {
@Override public void run() {
if (holderMenus != null) {
if (DeviceType.INSTANCE.tablet) {
holderMenus.animate().translationY(-holderMenus.getHeight());
} else {
holderMenus.animate().translationY(holderMenus.getHeight());
}
}
}
});
然后,当我想移动视图时:
holderMenus.animate().translationY(0).setDuration(300);
效果很好;视图滑入。接下来我想将视图移出屏幕:
if (DeviceType.INSTANCE.tablet) {
holderMenus.animate().translationY(-holderMenus.getHeight()).setDuration(300);
} else {
holderMenus.animate().translationY(holderMenus.getHeight()).setDuration(300);
}
但是不是滑动,视图就会消失,好像我已将属性设置为.setVisibility(View.GONE);
如何让它滑动呢?
答案 0 :(得分:3)
我制作了一个自定义操作按钮,可以在屏幕下方滑动,并在滚动列表视图时在屏幕下方滑动。
隐藏:
TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 500);
anim.setDuration(300l);
anim.setFillAfter(true);
layout.startAnimation(anim); //layout is the layout with the button
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
layout.clearAnimation();
layout.setVisibility(View.GONE);
}
}, 300l);
节目:
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
try {
layout.setVisibility(View.VISIBLE);
TranslateAnimation anim = new TranslateAnimation(0, 0, 500, 0);
anim.setDuration(300l);
anim.setFillAfter(true);
layout.startAnimation(anim);
} catch (Exception e) {
e.printStackTrace();
}
}
}, 500l);
答案 1 :(得分:0)
我猜幻灯片动画并非从您认为的那一刻开始。它可能会在屏幕上的相同位置“动画”。
您可能想尝试使用ObjectAnimator,例如,您可以使用ofFloat
方法为动画指定起点和终点。