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
相关文章
相关标签/搜索