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 値を計算します。