什么是paddingStart和paddingEnd?

由于很少次Eclipse中的自动完成框提出android:paddingStart android:paddingStop,当我编写xml布局文件时。

我真的不明白这些属性应该做什么。

eclipse / javadoc文档实际上没有用处: Sets the padding, in pixels, of the start edge; see padding. Sets the padding, in pixels, of the start edge; see padding. 并且在线文档没有提及这些属性: http : //developer.android.com/reference/android/view/View.html

你能解释一下吗?

在阅读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; } } 

在使用和阅读本文时,我意识到它是paddingStart和paddingEND而不是paddingSTOP(虽然这个元素存在)。