[CAUSE]
在寫一個自定義View時, 直接複製了Android-Source的XML佈局文件, 默認開發SDK版本是4.2.2(Level-API-17), 後因其餘緣由將SDK版本改成4.1.2 (Level-API-16), 而後XML佈局文件就報錯了, ----這時才知道paddingStart & paddingEnd是4.2.2中才新加的.
P.S.能夠對好比下兩個Android-XML文件(特別注意paddingStart & paddingEnd): html
- android-sdk\platforms\android-17\data\res\values\styles.xml
- android-sdk\platforms\android-16\data\res\values\styles.xml
[QuickStart]
- paddingStart & paddingEnd 是根據左右對齊方式來起做用的
- 左對齊時, paddingStart 對應 paddingLeft, paddingEnd 對應 paddingRight
- 右對齊時, 正好相反
[ANALYSIS]
- 打開文件android-sdk\sources\android-17\android\view\View.java
- 能夠找到mUserPaddingStart (mUserPaddingEnd) 就是存儲 paddingStart (paddingEnd) 屬性的變量
- 又能夠找到其被賦值給mUserPaddingLeft / mUserPaddingRight, 可在resolvePadding() & resetPaddingToInitialValues() 找到
- 接下來, 能夠看到這兩個函數都會調用到 getLayoutDirection() , 來檢查是LAYOUT_DIRECTION_RTL 仍是 LAYOUT_DIRECTION_LTR 的對齊方式
[SeeAlso]
http://developer.android.com/reference/android/R.attr.html