我已经为此苦苦挣扎了几个小时,如果这是一个愚蠢的问题,我很抱歉。
我想用动画打开一个 AlertDialog(使背景变暗)。对话框视图是一个 WebView。我尝试了两种方法:
1) 使用 xml 样式的 AnimatedDialog:
<style name="AnimatedDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowAnimationStyle">@style/AnimatedDialogAnimation</item>
</style>
在代码中调用
builder = new AlertDialog.Builder(context, R.style.AnimatedDialog);
这种方法的问题是对话框有一个丑陋的框架,可能是因为parent="@android:style/Theme.Dialog"
事情是错误的,但我找不到哪个是正确的AlertDialog
. 所以我尝试了这个:
2)通过WindowManager.LayoutParams
:
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.windowAnimations = R.style.AnimatedDialog;
dialog.getWindow().setAttributes(lp);
现在的问题是对话框没有动画(为什么??)。
此外,在这两种情况下,对话框在显示之前都会短暂“闪烁”,换句话说,我可以看到它正在“构建”。也许是因为 WebView?
有人可以指导我如何正确执行此操作吗?
谢谢!!