Что такое paddingStart и paddingEnd?

Поскольку несколько раз окно автозаполнения из Eclipse предлагает андроид: 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

Не могли бы вы объяснить мне?

Ответы

Ответ 1

После чтения в исходный код Android (View.java), кажется, paddingStart и paddingEnd помогают позаботиться о направлении букв (слева направо справа налево), определенных пользователем.

Таким образом, paddingStart интерпретируется как paddinfLeft в языках LTR и paddingRight на языках RTL.

Исходный код из 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;
            }
    }

Ответ 2

При работе и чтении я понимаю, что это paddingStart и paddingEND, а не paddingSTOP (хотя этот элемент существует).