Android 布局之 RTL

中东国家地区须要适配 RTL的布局,顾名思义支持从右至左布局android

前提:在AndroidManifest.xml文件中

android:supportsRtl=true ,表示应用支持RTL布局此外TargetSdkVersion>=17,若不设置中东语言可开启开发者选项中强制使用从右至左布局布局

支持RTL布局时,布局参数要尽可能避免使用left 或rightui

1.问题描述:

设置项,美颜图标不支持RTL布局,spa

查询在AndroidManifest.xml 文件 android:supportsRtl= true

开发者选项开启强制使用从左至右布局,设置项,美颜图标仍不支持RTL

2.缘由:

查询对应组件的布局参数.net

美颜图标 布局参数使用 “left”,“right”

android:layout_alignParentRight code

android:layout_marginRight     xml

(2)设置项子viewblog

自定义控件布局onLayOut时判断是不是RTL开发

部分layout并未使用start/end标记,而是使用的left/right标记;2.自定控件未作反向处理 将Layout中left/right的属性换成start/end标记;

在自定义控件中检查当前是不是RTL反向类型,若是是就反向遍历添加子View

3.源码解读:

判断当前的布局方向

public static final int LAYOUT_DIRECTION_LTR = LayoutDirection.LTR;

public static final int LAYOUT_DIRECTION_RTL = LayoutDirection.RTL;

View.LAYOUT_DIRECTION_LTR

View.LAYOUT_DIRECTION_RTL

public int getLayoutDirection() {

final int targetSdkVersion = getContext().getApplicationInfo().targetSdkVersion;

if (targetSdkVersion < Build.VERSION_CODES.JELLY_BEAN_MR1) {

mPrivateFlags2 |= PFLAG2_LAYOUT_DIRECTION_RESOLVED;

return LAYOUT_DIRECTION_RESOLVED_DEFAULT;

}

return((mPrivateFlags2 & PFLAG2_LAYOUT_DIRECTION_RESOLVED_RTL) ==

PFLAG2_LAYOUT_DIRECTION_RESOLVED_RTL) ? LAYOUT_DIRECTION_RTL : LAYOUT_DIRECTION_LTR;

}

注意:计算子View之间的间距,子View和父布局之间的距离,根据是否支持RTL,从新计算起始子View的布局参数

4.问题

设置系统语言或者直接打开开发者选项的强制RTL 影响布局方向的机制??

科普参考:

(1)https://blog.csdn.net/lj19851227/article/details/12027321?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160566488919724842901184%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160566488919724842901184&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-12027321.pc_first_rank_v2_rank_v28&utm_term=Android+RTL&spm=1018.2118.3001.4449

(2)https://codegg.blog.csdn.net/article/details/46564025?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-8.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-8.edu_weight

android rtl布局支持,Android 布局之 RTL相关推荐

  1. android ratingbar 版本支持,Android用来替代RatingBar的自定义ImageRatingView

    项目地址:https://github.com/qingtenglv/ImageRatingView 因为android自带的RatingBar用起来不是很方便,于是决定自己写一个替代品.欢迎大家去g ...

  2. Android12系统上支持Android手机的usb网络共享

    Android系统需要支持Android手机通过usb共享过来的网络需要修改以下代码 1.修改内核,添加这几项内核驱动,kernel驱动默认有源码,我们只需配置上就行 +CONFIG_USB_USBN ...

  3. Android百分比布局支持和垂直TextView

    In this tutorial, we'll discuss and implement Android Percent Layout Support Library. Furthermore, w ...

  4. android relativelayout 比例,百分比布局支持库:RelativeLayout 和 FrameLayout 的尺寸用 % 来表示...

    虽然有很多的布局可以在 Android 应用程序开发的世界供我们使用,但我们总是只用这三种布局:LinearLayout, RelativeLayout and FrameLayout. 不管怎么说在 ...

  5. android 布局回弹,Android仿IOS回弹效果 支持任何控件

    本文实例为大家分享了Android仿IOS回弹效果的具体代码,供大家参考,具体内容如下 效果图: 导入依赖: dependencies { // ... compile 'me.everything: ...

  6. android对象申明,一行代码配置缺省页, Android最强缺省页框架, 支持代码/布局声明/视图对象回调/全局/单例配置/数据传递...

    StateLayout Android上最强大的缺省页(状态页面)工具 特点 全局配置 单例配置 生命周期(可以加载动画或者处理事件) 刷新回调 获取当前缺省页状态 Loading缺省页支持进度回调 ...

  7. Android 百分比布局(支持AndroidX)

    Android 百分比布局 添加依赖 代码使用 添加依赖 implementation 'com.android.support:percent:25.2.0' 我的项目是AndroidX的,依然用这 ...

  8. 【Android】自定义FlowLayout,支持多种布局优化--android-flowlayout

    前言 flow layout, 流式布局, 这个概念在移动端或者前端开发中很常见,特别是在多标签的展示中, 往往起到了关键的作用.然而Android 官方, 并没有为开发者提供这样一个布局, 于是有很 ...

  9. android自动标齐,自定义FlowLayout,支持多种布局优化--android-flowlayout

    前言 flow layout, 流式布局, 这个概念在移动端或者前端开发中很常见,特别是在多标签的展示中, 往往起到了关键的作用.然而Android 官方, 并没有为开发者提供这样一个布局, 于是有很 ...

最新文章

  1. 划分子网和构造超网的学习
  2. python —skleran分类示例(全流程)
  3. iview给radio按钮组件加点击事件
  4. 开通此博客的目的主要用于发布一些技术方面的文章
  5. wordpress提高访问速度
  6. BZOJ1027[JSOI2007] 合金
  7. ArcGIS API 4.x 加载高德底图
  8. 计算机设计大赛学生现场,我校学生在2019计算机设计大赛全国总决赛中再创佳绩...
  9. 科学计算机怎么用10次方,一个数怎么用计算器开10次方
  10. new_picview_PicView图片浏览器
  11. 固态硬盘能不能提高计算机速度,固态硬盘掉速如何解决?几招轻松提升SSD速度方法 (全文)...
  12. SQL Server查看是企业版还是个人版
  13. Windows10 快捷键
  14. 平板手写笔有必要买吗?开学季便宜又好用电容笔推荐
  15. Lingo 简单的背包问题
  16. 计算机视觉论文-2021-07-29
  17. RocketMQ 之 Broker Server
  18. Hadoop认识初体验
  19. 机器人视觉引导定位介绍
  20. ps笔记(从基础开始)

热门文章

  1. 新浪微博Sdk使用——air/移动应用
  2. S君 被父母毁掉的一生 r瓴
  3. 开班倒计时!12月1日—CDA数据分析就业班火热报名中
  4. IE里兼容性视图是做什么用的?该如何设置?
  5. js高级动画02--阻止事件冒泡,默认行为以及一些案例
  6. c语言程序 x是什么意思,x(-x)是什么意思
  7. Windows影射模式
  8. vc 坐标系统与影射模式
  9. MySQL ID排序乱了的解决办法
  10. 嵌入式Linux驱动学习之路(二十六)DM9000C网卡驱动程序