在 onViewCreate
中,我设置了屏幕后面的 View :
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());
}
}
}
});
然后,当我想将 View 移入时:
holderMenus.animate().translationY(0).setDuration(300);
效果很好; View 滑入。接下来我想将 View 移出屏幕:
if (DeviceType.INSTANCE.tablet) {
holderMenus.animate().translationY(-holderMenus.getHeight()).setDuration(300);
} else {
holderMenus.animate().translationY(holderMenus.getHeight()).setDuration(300);
}
但是 View 没有滑动,而是消失了,好像我已经将属性设置为
.setVisibility(View.GONE);
我怎样才能让它滑动呢?
最佳答案
我制作了一个自定义操作按钮,该按钮从屏幕下方滑动,并在滚动 ListView 时滑回屏幕下方。
隐藏:
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);
关于android - 如何制作适当的移入/移出动画?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40178091/