AndroidQ(10.0) Settings DatePick bug修改

问题现象

as0FCd.png

上图展示的很清楚,在系统->日期和时间选项页面中,点击日期 Preference,左边的上一月显示都透出来了

修改历程

一开始觉得是 DatePick 系统控件出问题了吧,自己新建了android工程,同样的调用方式显示发现是正常的,这么说排除系统

控件的锅,上网找了一堆 DatePick 相关bug的文章,但都不是同样的bug。

开始尝试在 settings 中其它地方调用 DatePick 显示,发现也出现同样显示bug,找啊找,试啊试

最终定位到样式上,和 android:clipchildren 有关。

android:clipchildren 属性,clip 的原意为裁剪,clipchildren表示是否裁剪子View,当此属性的值为false时,

子View的大小可以超过父View的大小。所以就出现了上图的bug

解决办法

注释 Theme.Settings 样式中 android:clipChildren 属性

vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/themes.xml

     <style name="Theme.Settings" parent="Theme.SettingsBase">
         <item name="preferenceTheme">@style/PreferenceTheme</item>
         <item name="android:clipToPadding">false</item>
+        <!--remove  clipChildren for fix DatePickerDialog show extend layout bug-->
+        <!-- <item name="android:clipChildren">false</item> -->
         <item name="android:listPreferredItemHeight">72dip</item>
         <item name="android:homeAsUpIndicator">@drawable/ic_arrow_back</item>
         <item name="android:navigationBarColor">@android:color/transparent</item>

猜你喜欢

转载自blog.csdn.net/u012932409/article/details/107913018
今日推荐