android 2.x对话框与windowAnimationStyle不能被解雇

时间:2014-10-27 13:23:29

标签: android

我发现在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上会发生什么

screen capture

0 个答案:

没有答案