Mat*_*ieu 15 android android-layout
由于很少次Eclipse中的自动完成框提出android:paddingStart android:paddingStop,当我编写xml布局文件时.
我真的不明白这些属性应该做什么.
eclipse/javadoc文档并没有多大帮助:
Sets the padding, in pixels, of the start edge; see padding.在线文档没有对这些属性进行任何引用:http://developer.android.com/reference/android/view/View.html
你能解释一下吗?
Mat*_*ieu 29
在阅读Android源代码(View.java)之后,似乎paddingStart和paddingEnd有助于处理用户定义的字母方向(从右到左的左右).
因此,paddingStart在LTR(从左到右)语言中被解释为paddingLeft,在RTL(从右到左)语言中被解释为paddingRight.
来自View.java的源代码(android-4.0.1):
switch (getResolvedLayoutDirection()) {
case LAYOUT_DIRECTION_RTL:
// Start user padding override Right user padding. Otherwise, if Right user
// padding is not defined, use the default Right padding. If Right user padding
// is defined, just use it.
if (mUserPaddingStart >= 0) {
mUserPaddingRight = mUserPaddingStart;
} else if (mUserPaddingRight < 0) {
mUserPaddingRight = mPaddingRight;
}
if (mUserPaddingEnd >= 0) {
mUserPaddingLeft = mUserPaddingEnd;
} else if (mUserPaddingLeft < 0) {
mUserPaddingLeft = mPaddingLeft;
}
break;
case LAYOUT_DIRECTION_LTR:
default:
// Start user padding override Left user padding. Otherwise, if Left user
// padding is not defined, use the default left padding. If Left user padding
// is defined, just use it.
if (mUserPaddingStart >= 0) {
mUserPaddingLeft = mUserPaddingStart;
} else if (mUserPaddingLeft < 0) {
mUserPaddingLeft = mPaddingLeft;
}
if (mUserPaddingEnd >= 0) {
mUserPaddingRight = mUserPaddingEnd;
} else if (mUserPaddingRight < 0) {
mUserPaddingRight = mPaddingRight;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17532 次 |
| 最近记录: |