最近經(jīng)常使用layout_marginStart,看有些源代碼里經(jīng)常同時使用layout_marginLeft和layout_marginStart。查了查解釋些侍,layout_marginStart是Android4.2新添加的參數(shù)执泰,用來自動匹配從右向左寫的語言(阿拉伯語等)。正常的中文英文造挽,layout_marginStart就等于layout_marginLeft,當(dāng)系統(tǒng)設(shè)置為阿拉伯語時弄痹,layout_marginStart就相當(dāng)于layout_marginRight饭入,這是系統(tǒng)自動實現(xiàn)的。
實驗一下同時使用layout_marginLeft和layout_marginStart肛真。首先兩者參數(shù)不會疊加谐丢,其次,只要定義了layout_marginStart蚓让,不管layout_marginLeft在前在后定義乾忱,系統(tǒng)都只使用layout_marginStart的參數(shù)來布局。
所以以后還是使用layout_marginStart比較好历极。
在寫layout布局的時候窄瘟,我們會發(fā)現(xiàn)有這樣幾個比較相似的屬性:
MarginStart MarginLeft
MarginEnd MarginRight
這些屬性的區(qū)別是什么? 根據(jù)api注釋,我們得知MarginStart指的是控件距離開頭View部分的間距大小趟卸,MarginLeft則指的是控件距離左邊View部分的間距大小蹄葱,MarginEnd和MarginRight同理。
一般情況下衰腌,View開始部分就是左邊新蟆,但是有的語言目前為止還是按照從右往左的順序來書寫的,例如阿拉伯語右蕊,在Android 4.2系統(tǒng)之后琼稻,Google在Android中引入了RTL布局,更好了支持了由右到左文字布局的顯示饶囚,為了更好的兼容RTL布局帕翻,google推薦使用MarginStart和MarginEnd來替代MarginLeft和MarginRight,這樣應(yīng)用可以在正常的屏幕和由右到左顯示文字的屏幕上都保持一致的用戶體驗萝风。
以下內(nèi)容摘自他人翻譯的中文Android 4.2API:
Android 4.2引入了由右到左文字的全面本地支持布局嘀掸。在本地RTL支持下,您可以為所有用戶帶來完美的應(yīng)用體驗规惰,不論他們的文字書寫方向是由左至右還是由右至左睬塌。當(dāng)用戶切換系統(tǒng)語言到由右至左書寫方式時,系統(tǒng)提供自動的應(yīng)用UI布局和所有可視組件的鏡像,包括文字元素的顯示和輸入揩晴。您的應(yīng)用僅需極少改變即可支持RTL布局鏡像勋陪。如果您的應(yīng)用支持這一特性,只要在您應(yīng)用的manifest文件中將所有的”left/right”布局屬性改變?yōu)閷?yīng)的”start/end”即可硫兰。系統(tǒng)就會根據(jù)需要處理您UI了诅愚。