由于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
答案 0 :(得分: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;
}
}
答案 1 :(得分:1)
Padding 用于在视图与其内容之间添加一个空格。
android:paddingStart
设置起始边缘的填充意味着在
左侧视图android:paddingEnd
设置结束边缘的填充意味着在
右侧视图android:paddingBottom
设置底部边缘的内边距android:paddingTop
设置顶部边缘的内边距答案 2 :(得分:0)
在使用和阅读本文时,我意识到它是paddingStart和paddingEND而不是paddingSTOP(虽然这个元素存在)。