View屬性 之 paddingStart & paddingEnd

[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]

  1. paddingStart & paddingEnd 是根據左右對齊方式來起做用的
  2. 左對齊時, paddingStart 對應 paddingLeft, paddingEnd 對應 paddingRight
  3. 右對齊時, 正好相反 

[ANALYSIS]

  1. 打開文件android-sdk\sources\android-17\android\view\View.java
  2. 能夠找到mUserPaddingStart (mUserPaddingEnd) 就是存儲 paddingStart (paddingEnd) 屬性的變量
  3. 又能夠找到其被賦值給mUserPaddingLeftmUserPaddingRight, 可在resolvePadding()resetPaddingToInitialValues()  找到
  4. 接下來, 能夠看到這兩個函數都會調用到 getLayoutDirection() , 來檢查是LAYOUT_DIRECTION_RTL 仍是 LAYOUT_DIRECTION_LTR 的對齊方式

[SeeAlso]

http://developer.android.com/reference/android/R.attr.html
相關文章
相關標籤/搜索