layout_marginLeft和layout_marginStart區別

最近經常使用layout_marginStart,看有些源代碼里經常同時使用layout_marginLeft和layout_marginStart。查了查解釋,layout_marginStart是Android4.2新添加的參數,用來自動匹配從右向左寫的語言(阿拉伯語等)。正常的中文英文,layout_marginStart就等于layout_marginLeft,當系統設置為阿拉伯語時,layout_marginStart就相當于layout_marginRight,這是系統自動實現的。

實驗一下同時使用layout_marginLeft和layout_marginStart。首先兩者參數不會疊加,其次,只要定義了layout_marginStart,不管layout_marginLeft在前在后定義,系統都只使用layout_marginStart的參數來布局。

所以以后還是使用layout_marginStart比較好。

在寫layout布局的時候,我們會發現有這樣幾個比較相似的屬性:
MarginStart MarginLeft
MarginEnd MarginRight

這些屬性的區別是什么? 根據api注釋,我們得知MarginStart指的是控件距離開頭View部分的間距大小,MarginLeft則指的是控件距離左邊View部分的間距大小,MarginEnd和MarginRight同理。

一般情況下,View開始部分就是左邊,但是有的語言目前為止還是按照從右往左的順序來書寫的,例如阿拉伯語,在Android 4.2系統之后,Google在Android中引入了RTL布局,更好了支持了由右到左文字布局的顯示,為了更好的兼容RTL布局,google推薦使用MarginStart和MarginEnd來替代MarginLeft和MarginRight,這樣應用可以在正常的屏幕和由右到左顯示文字的屏幕上都保持一致的用戶體驗。
以下內容摘自他人翻譯的中文Android 4.2API:
Android 4.2引入了由右到左文字的全面本地支持布局。在本地RTL支持下,您可以為所有用戶帶來完美的應用體驗,不論他們的文字書寫方向是由左至右還是由右至左。當用戶切換系統語言到由右至左書寫方式時,系統提供自動的應用UI布局和所有可視組件的鏡像,包括文字元素的顯示和輸入。您的應用僅需極少改變即可支持RTL布局鏡像。如果您的應用支持這一特性,只要在您應用的manifest文件中將所有的”left/right”布局屬性改變為對應的”start/end”即可。系統就會根據需要處理您UI了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,302評論 25 708
  • Android功能強大,界面華麗,但是眾多的布局屬性就害苦了開發者,下面這篇文章結合了網上不少資料.第一類:屬性值...
    HangChen閱讀 4,937評論 0 24
  • 歡迎Follow我的GitHub, 關注我的CSDN. 其余參考Android目錄. 轉載請注明出處:http:/...
    passiontim閱讀 4,809評論 0 31
  • 總感覺,像是在做一個夢。 不,不對,應該說,這本身就是一個夢,一個離奇虛假的夢。 夢里,有大片大片的灰色,那是一種...
    木四諦閱讀 407評論 13 5
  • 昨天從早上9點開始就下起了雨夾雪,像小米大小的樣子,從空中一點點的散落下來,落地就被融化不見了,空氣一下子濕漉漉的...
    雨后青藍ll閱讀 210評論 4 2