欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

MarginStart 和 MarginLeft

程序员文章站 2022-08-17 13:12:53
MarginStart指的是控件距离开头View部分的间距大小,MarginLeft则指的是控件距离左边View部分的间距大小,MarginEnd和MarginRight同理。一般情况下,View开始部分就是左边,但是有的语言目前为止还是按照从右往左的顺序来书写的,例如阿拉伯语,在Android 4.2系统之后,Google在Android中引入了RTL布局,更好了支持了由右到左文字布局的显示,为了更好的兼容RTL布局,google推荐使用MarginStart和MarginEnd来替代MarginLe...

MarginStart指的是控件距离开头View部分的间距大小,MarginLeft则指的是控件距离左边View部分的间距大小,MarginEnd和MarginRight同理。

一般情况下,View开始部分就是左边,但是有的语言目前为止还是按照从右往左的顺序来书写的,例如阿拉伯语,在Android 4.2系统之后,Google在Android中引入了RTL布局,更好了支持了由右到左文字布局的显示,为了更好的兼容RTL布局,google推荐使用MarginStart和MarginEnd来替代MarginLeft和MarginRight,这样应用可以在正常的屏幕和由右到左显示文字的屏幕上都保持一致的用户体验。

不能直接删除MarginLeft,因为MarginStart是高版本的android才有的属性,删除之后,低版本的不能兼容这款软件。
有两种阅读方式,从左到右(left-to-right,即LTR)和从右到左(right-to-left,即RTL)。
简单来说,对于LTR,start、end等同于left、right;而对于RTL,则相反。
为了使用RTL布局,需要实现以下两点:

在AndroidManifest中声明支持RTL布局:在 元素下添加android:supportsRtl="true"声明。
在App中用start、end来替代left、right:
如果用4.2及以上编译( targetSdkVersion或者minSdkVersion大于等于17),则start、end来替代left、right,例如:android:paddingLeft 应改为android:paddingStart
如果用4.2以下编译( targetSdkVersion或者minSdkVersion小于等于16),两者都必须使用,例如:需要同时使用android:paddingLeft 和android:paddingStart
Android4.2也引入了一些新的API来控制LTR和RTL模式,如:

android:layoutDirection
android:textDirection
android:textAlignment

本文地址:https://blog.csdn.net/weiyy0125/article/details/107494486