2019年4月6日 星期六

android:supportsRtl 屬性在 Android 4.2 影響 PreferenceCategory left padding

markdown Android 踩坑又一發,最近在寫 app 時將原本的 PreferenceFragment 改為 PreferenceFragmentCompat,並且照[之前](http://lausai360.blogspot.com/2018/01/android-support-library-preference.html)介紹過的方式套用 material style,但改完後發現在 Android 4.2 上面 PreferenceCategory 的 left padding 為 0,跟其他的 preference 不對齊。 ![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFxc5DYrhLrxNliVBe-IIKyU0oDhJbP7YDvvC5-NQaO_z_IdMgr4iuNb8csBCqzPapOPcXtUpe_r-IdInkfI7C0PlAYGv0kaHLKR62tWS-zgmlechU_HqrE3TWHvXXjqCpSuWLEH_e216S/s1600/Image+7.png) 網路上不管怎麼搜尋,有關 left padding 的問題都是在問 support library 28 中 left padding 過大,從沒有 left padding 過小的問題,花了一天多都沒有找到原因。契而不捨的追查,血都吐了幾升,最後才發現 app 將 android:supportsRtl 設為 true 後,PreferenceCategory left padding 就恢復正常了。 android:supportsRtl 這個屬性只是影響你的 app 能不能從右到左布局,跟 Preference 根本沒有關連,怎麼都不會聯想到這個屬性會造成 Preference 布局異常。 後來用 android:supportsRtl keyword 去搜尋,也沒有找到任何跟 Preference 布局有關的討論,只能說自己太衰,踩到這個可能沒人踩過的坑。

沒有留言:

張貼留言