什么是paddingStart和paddingEnd?

时间:2012-08-28 13:16:48

标签: 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

你能解释一下吗?

3 个答案:

答案 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 设置顶部边缘的内边距

enter image description here

答案 2 :(得分:0)

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