好久没记录文档了,拖了老半个月,终于空下来时间,为了避免以后踩坑,必须记录记录。
背景:
为activity设置样式为弹窗activity
异常一:
activity设置style后,布局不能够正常显示,由于固定了activity的高度(例如500),当高度超出500后,布局展示异常,只展示底部布局。
异常二:
在有虚拟按键手机上弹出该对话框,对话框与布局会重叠在一起
异常代码如下:
<!-- ActionSheet 对话框样式--> <style name="YTDialogActivityStyle" parent="AppTheme"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <!-- 浮于Activity之上 --> <item name="android:windowIsFloating">true</item> <!-- 边框 --> <item name="android:windowFrame">@null</item> <item name="android:windowFullscreen">false</item> <item name="android:navigationBarColor">@color/transparent</item> <item name="android:statusBarColor">@color/transparent</item> <!-- Dialog以外的区域模糊效果 --> <item name="android:backgroundDimEnabled">true</item> <!-- 无标题 --> <item name="android:windowNoTitle">true</item> <!-- 半透明 --> <item name="android:windowIsTranslucent">true</item> <item name="android:layout_gravity">bottom</item> <item name="android:layout_width">match_parent</item> <!-- ActionSheet进入及退出动画 --> <item name="android:windowAnimationStyle">@style/YTDialogActivityAnimation</item> </style>
原因分析:
异常一:经排查发现,是"android:layout_gravity"属性设置导致,修改为top可解决该问题。
异常二:"android:windowIsFloating"属性设置导致,修改为false可解决问题。
修改后代码:
<!-- ActionSheet 对话框样式--> <style name="YTDialogActivityStyle" parent="AppTheme"> <item name="android:windowBackground">@android:color/transparent</item> <!-- 无标题 --> <item name="android:windowNoTitle">true</item> <!-- 半透明 --> <item name="android:windowIsTranslucent">true</item> <!-- ActionSheet进入及退出动画 --> <item name="android:windowAnimationStyle">@style/YTDialogActivityAnimation</item> </style>
最好是需要什么设置什么,指不定多少坑。