異常記錄-Dialog樣式踩坑
阿新 • • 發佈:2020-09-03
好久沒記錄文件了,拖了老半個月,終於空下來時間,為了避免以後踩坑,必須記錄記錄。
背景:
為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> <!-- 邊框 --> <itemname="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>
最好是需要什麼設定什麼,指不定多少坑。