android 2.x上Dialog特定情况导致无法dismiss的bug

近期在做一个简单的对话框框架,作用不过做出一个显示效果在android 2.x到android 4.x上均类似的对话框.

思路比較简单,就是使用装饰模式包裹Dialog,暴露的接口调用时会自己主动完毕一些设置

可是遇到一个特别诡异的问题,在android 2.x上的Dialog对话框无法被dismiss,仅仅要弹出来界面就卡死,强行使用eclipse又一次run的话会导致android设备黑屏无响应,假设是模拟器,则直接崩溃,看到启动画面.并且这个还不是ANR错误.

后来通过删减代码找到了问题的源头,这也是最不可能被怀疑的地方.在style.xml中我定义了一个对话框用的style,继承@android:style/Theme.Dialog

<style name="Shalog" parent="@android:style/Theme.Dialog">
    <item name="android:windowAnimationStyle">@style/ShalogAnimation</item>
</style>

问题就出在这个android:windowAnimationStyle属性上,我给这个属性定义的ShalogAnimation给Dialog进入和退出分别设置了alpha动画,alpha动画在API 11及以上才支持,也就是android 3.0及以上版本号.即便是这样,我还是无法理解这个问题.

我记得android对xml中不支持的内容是直接忽略的,所以理论上这个动画被忽略了才对,然而实际上却能让android整个系统崩溃掉,很诡异.

假设换用translate动画,则表现正常.

我在stackoverflow上问了,临时还没有人回答,他们有人评论说为什么还要兼容android 4.0下面版本号.嗯,我以后绝对拒绝兼容.

这应该是个bug.假设有谁了解欢迎评论批评指正.

转载于:https://www.cnblogs.com/ljbguanli/p/6786421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值