2012-08-28 401 views

回答

27

看完Android源代碼(View.java)後,似乎paddingStart和paddingEnd有助於照顧用戶定義的字母方向(從左到右)。

因此,paddingStart在LTR語言中被解釋爲paddinfLeft,在RTL語言中被解釋爲paddingRight。從View.java(安卓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; 
      } 
    } 
+3

另請注意,它們似乎不公開。至少Eclipse不會爲我編譯它們。 – Timmmm

+1

@Timmmm必須將目標設置爲api 17+才能編譯。 – schwiz

+1

@schwiz api 17目前無法使用。但是現在,您可以將17級的api級別設置爲使用這些字段。 – Mathieu

0

當工作和閱讀這一點,我意識到這是paddingStart和paddingEND而不是paddingSTOP(雖然這個元素存在)。