以下是我的工作:
一个。 FragmentDialog的布局在onCreateView
`View layout = inflater.inflate(R.layout.my_layout,null);
layMain = (LinearLayout) layout.findViewById(R.id.layMain);
final Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.translate_from_bottom);
layMain.startAnimation(anim);`
湾创作动画很好。但是,我需要找到一种解决方法(例如当用户按下后退按钮时)以运行动画,然后解除FragmentDialog
℃。我不想使用android:windowEnterAnimation
/ android:windowExitAnimation
,因为并非所有设备都在Developer菜单中激活了动画,我需要在所有情况下运行动画。
所以基本上,为了运行动画我应该覆盖什么事件,在动画结束时要进行消除操作?
答案 0 :(得分:1)
正如https://stackoverflow.com/a/8209841/379865所见,解决方案非常简单:获取对话框并听取按键操作。
getDialog().setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
final Animation anim =
AnimationUtils.loadAnimation(getActivity(),
R.anim.translate_to_bottom);
anim.setAnimationListener(new 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) {
dismiss();
}
});
layMain.startAnimation(anim);
return true;
}
return false;
}
});