看完Android源代碼(View.java)後,似乎paddingStart和paddingEnd有助於照顧用戶定義的字母方向(從左到右)。
因此,paddingStart在LTR語言中被解釋爲paddinfLeft,在RTL語言中被解釋爲paddingRight。從View.java(安卓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;
}
}
另請注意,它們似乎不公開。至少Eclipse不會爲我編譯它們。 – Timmmm
@Timmmm必須將目標設置爲api 17+才能編譯。 – schwiz
@schwiz api 17目前無法使用。但是現在,您可以將17級的api級別設置爲使用這些字段。 – Mathieu