我从 Zoltish answer 得到灵感,这是我的实现:
1.在片段中添加这个方法,它会将片段动画到屏幕左侧:
public void animateOut()
{
TranslateAnimation trans=new TranslateAnimation(0,-300*Utils.getDensity(getActivity()), 0,0);
trans.setDuration(150);
trans.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
((BetsActivty)getActivity()).removeFrontFragmentAndSetControllToBetting();
}
});
getView().startAnimation(trans);
}
onAnimationEnd() 内部的方法像这样删除片段:
getSupportFragmentManager().beginTransaction().
remove(getSupportFragmentManager().findFragmentById(R.id.fragment_container)).commit();
2.从活动的onBack()调用片段的animateOut。
干杯
顺便说一句,我的 getDensity() 是:
public static int getDensity(Context context)
{
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return (int)metrics.density;
}
我用它计算当前运行设备的 DP 值。