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 に答える
0

これを操作して読むと、paddingStart と paddingEND であり、paddingSTOP ではないことがわかります (この要素は存在しますが)。

于 2015-10-24T14:19:05.927 に答える