15

由于几次来自 Eclipse 的自动完成框在我编写 xml 布局文件时提出 android:paddingStart android:paddingStop 。

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

eclipse/javadoc 文档并没有真正 Sets the padding, in pixels, of the start edge; see padding.的帮助:在线文档没有对这些属性进行任何引用:http: //developer.android.com/reference/android/view/View.html

你能给我解释一下吗?

4

3 回答 3

30

阅读 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;
            }
    }
于 2012-08-28T13:28:30.733 回答
1

填充用于在视图及其内容之间添加空白区域。

  • android:paddingStart在视图左侧的起始边缘设置填充
  • android:paddingEnd在视图右侧设置末端边缘的填充
  • android:paddingBottom设置底部边缘的填充
  • android:paddingTop设置顶部边缘的填充

在此处输入图像描述

于 2021-05-30T01:09:30.323 回答
0

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

于 2015-10-24T14:19:05.927 回答