我发现在android 2.3.3(模拟器)和2.3.4(huawei手机)上,一个带windowAnimationStyle的Dialog无法被删除。这是我在Activity中的代码:
private Dialog mDialog;
private View mDialogView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mDialog.dismiss();
super.handleMessage(msg);
}
};
public void clickButton2(View view) {
mDialog = new Dialog(this, R.style.Toalog);
mDialogView = LayoutInflater.from(this).inflate(R.layout.toast_view, null);
mDialog.setContentView(mDialogView);
mDialog.setTitle("title");
mDialog.show();
Message msg = mHandler.obtainMessage();
mHandler.sendMessageDelayed(msg, 1000);
}
和style.xml中的代码
<style name="Toalog" parent="@android:style/Theme.Dialog">
<item name="android:windowAnimationStyle">@style/ShalogAnimation</item>
</style>
<style name="ShalogAnimation">
<item name="android:windowEnterAnimation">@anim/fade_in</item>
<item name="android:windowExitAnimation">@anim/fade_out</item>
</style>
/anim/fade_in.xml中的代码:
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/decelerate_quad"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@integer/enterfadeduration" />
/anim/fade_out.xml类似于fade_in.xml
运行此代码,然后您可以看到对话框始终显示在屏幕上,并且应用程序不会响应您的点击。如果您尝试通过eclipse重新安装它,那么模拟器会崩溃。
在Android 4.4.4(小米手机)和4.2.2(xolo手机)
上一切正常这是一个错误吗?或者这是我的错误?
我发现的唯一解决方案是不在2.x或更低版本上使用windowAnimationStyle。我不知道android 3.x上会发生什么