我有一个如下对话框:
final Dialog dialog = new Dialog(this, R.style.DialogSlideSideAnim);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(
new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setCanceledOnTouchOutside(false);
dialog.setCancelable(false);
dialog.setContentView(R.layout.some_dialog_layout);
Window window = dialog.getWindow();
window.setLayout(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.CENTER);
dialog.show();
当活动停止时,对话框退出动画显示在主屏幕上,当活动恢复时,对话框返回到它应该的位置。
如何在活动停止时阻止退出动画?
答案 0 :(得分:0)
在您的活动中,对话框尝试在暂停中取消
@Override
public void onPause()
{
dialog.cancel();
super.onPause();
}
答案 1 :(得分:0)
static boolean isShow = false;
@Override
public void onPause()
{
dialog.dismiss();
super.onPause();
}
@Override
public void onResume()
{
if(isShow ){
dialog.show();
super.onResume();
}
}
//And where
dialog.show();
isShow = true;
答案 2 :(得分:0)
<强> IMO 强>
其次,您可以使用样式更改对话框退出动画:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="PauseDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item>
</style>
<style name="PauseDialogAnimation">
<item name="android:windowEnterAnimation">@anim/spin_in</item>
<item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>
windowEnterAnimation是一个位于res \ anim的动画。
windowExitAnimation是一个动画,是Android SDK的一部分。
然后初始化对话框:
Dialog dialog = new Dialog(this, R.style.PauseDialog);
或
Dialog dialog = new Dialog(this);
dialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation;
希望这有帮助!