阅读Android源代码(View.java)之后,似乎paddingStart和paddingEnd有助于照顾用户定义的字母方向(从右到左).

因此,paddingStart在LTR语言中被解释为paddinfLeft,在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;

}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐