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了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,066评论 25 709
  • Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料.第一类:属性值...
    HangChen阅读 10,466评论 0 24
  • 欢迎Follow我的GitHub, 关注我的CSDN. 其余参考Android目录. 转载请注明出处:http:/...
    passiontim阅读 10,264评论 0 31
  • 总感觉,像是在做一个梦。 不,不对,应该说,这本身就是一个梦,一个离奇虚假的梦。 梦里,有大片大片的灰色,那是一种...
    木四谛阅读 2,990评论 13 5
  • 昨天从早上9点开始就下起了雨夹雪,像小米大小的样子,从空中一点点的散落下来,落地就被融化不见了,空气一下子湿漉漉的...
    雨后青蓝ll阅读 1,540评论 4 2

友情链接更多精彩内容