最近公司有海外项目需求,因为有多语言适配,布局就需要LTR以及RTL布局方式,特此记录一下简单适配过程。

  • 开发语言 kotlin
  • 布局使用xml结合 viewbinding
  • 最低 Api Level 21

RTL

  1. RTL 是 Right-to-left 的缩写,其意为阅读和书写的习惯,是从右向左延伸的。再对比一下我国人自身的使用习惯,都是 LTR 的,也就是从左向右。
  2. RTL 可以简单理解是 LTR 的镜像,当需要适配 RTL 的时候,除了翻译语言本身,还需要做到的就是 UI 布局,从中轴上镜像反转。
  3. RTL 不符合我们国人的使用习惯,但是全球范围内依然有一部分人保持着 RTL 的习惯,比较常见的就是阿拉伯语、希伯来语等。
  4. Android 4.2 开始,增加了对 RTL 镜像布局完全原生的支持。我这里使用最低Android5.0,所以完全支持。
  5. 在这些系统版本上,只要用户系统语言切换到「RTL 系语言」,首先系统 UI 会直接左右镜像切换,此时如果你的 App 支持 RTL 镜像布局时,也会自动切换布局方向。

支持

  1. 标签下添加 android:supportsRtl=“true” 即可。

  2. 布局的编写需要注意

    1.  xxxLeft/xxxRight "替换"为 xxxStart/xxxEnd
    2. 使用约束布局 Left/Right 都需要变换为 Start/End
    3. 如果不想某些控件镜像,使用Left/Right即可,使用后不会被镜像
    
  3. 一些细节

    1. 适配 RTL 的过程中,无法避免的就是有一些属性必须要设置,比如常用的TextView

      android:gravity="start"
      android:textDirection="locale"将这些属性在 style.xml 中全局为 TextView 设置
      <style name="TextViewStyle.Alignment" parent="@android:style/Widget.TextView"><item name="android:gravity">start</item><item name="android:textDirection">locale</item>
      </style>
    2. RTL 的资源适配

      res/mipmap-xhdpi/b.png  mipmap-ldrtl-xhdpi/b.png  layout/main.xml  // 默认布局layout-ar/main.xml  // 阿拉伯语布局layout-ldrtl/main.xml  // RTL 布局

小结

按照以上操作完成后,对照UI仔细检查每个页面以及资源,根据需求调整即可。

Android RTL布局适配相关推荐

  1. android rtl布局支持,Android 布局之 RTL

    Android 布局之 RTL 中东国家地区须要适配 RTL的布局,顾名思义支持从右至左布局android 前提:在AndroidManifest.xml文件中 android:supportsRtl ...

  2. android ui布局适配,Android适配全面总结(一)----屏幕适配

    前言 Android适配是一个老生常谈的问题,很多程序员觉得很恶心,不愿意做适配,但是又不得不做.然后老板说,这位兄弟,做好了,今天晚饭给你加个鸡腿,然后程序员开始找各种资料,忙活起来了,最终在苦逼的 ...

  3. android ui布局适配,Android设备的界面适配设计

    Android设备App设计中有一个问题可能会被设计师忽略,在各种分辨率各种尺寸"杂屏"的界面适配.可能产出的界面稿在常用的720*1280的分辨率中是完美,但一到各个不同分辨率不 ...

  4. android百分比布局适配,安卓屏幕适配-百分比布局

    屏幕适配-百分比布局 原理:以父容器尺寸作为参考,在View的加载过程,根据当前父容器实际尺寸换算出目标尺寸,在作用在View上. 百分比布局实际是对容器的一中扩展,扩展的是宽高等比例的设置. 1.自 ...

  5. android 布局适配虚拟键适配

    今天,看到关于虚拟键盘的内容,于是记录一下. 如果是控件,可以直接使用Android:fitsSystemWindows="true"),但是如果是popwindow,那就必须获取 ...

  6. android 多套布局适配,Android屏幕适配 重点盘点

    引子 屏幕适配是 android 开发/面试 绕不开的一个问题.本文 将屏幕适配的知识要点完整展现给各位读者. 正文大纲 android需要做屏幕适配的原因 基础知识点(很重要) 屏幕适配攻略 正文 ...

  7. Android 系统(226)---Android 阿拉伯语适配

    Android 阿拉伯语适配 RTL 语言由来 RTL 是 Right-to-left(从右向左) 的缩写.其意为人们书写阅读习惯是从右向左,朝左继续的,常见的 RTL 语言有阿拉伯语,希伯来语等. ...

  8. Android RLT布局兼容注意事项

    引 近期公司项目需要开拓阿拉伯市场,故需要在APP端兼容阿拉伯语. 阿拉伯语与其他多语言不同之处在于其布局是由右到左排布的,与我们常见的从左到右的布局不同.故需要修改部分代码的写法以兼容右到左布局. ...

  9. 关于Android语言本地化适配的问题和记录

    最近在项目中接触到了应用多语言适配的一些问题.海外市场这几年大概率也会是国内企业的进军方向.既然遇到了这方面的问题那就记录一下好了. 1.本地化设置 本地化的设置有很多,但最重要的应该是语言了适配.一 ...

最新文章

  1. 树莓派.系统.官方下载中NOOBS和Raspbian的区别
  2. 是什么牌子_水晶项链什么牌子好
  3. (王道408考研数据结构)第六章图-第四节2:最小生成树之克鲁斯卡尔算法(思想、代码、演示、答题规范)
  4. 还没使用过Web Worker? 推荐一款开源工具Workerize-Loader,让你在webpack项目中轻松使用Web Worker
  5. python中transform用法_Python Wand transform()用法及代码示例
  6. Python花式编程案例锦集(1)
  7. 阿里华为百度三足鼎立,5G 资费高,操作系统 Linux 称王 | 中国物联网开发者真实现状报告...
  8. Linux 命令缩写
  9. CCF201312试题
  10. js 连mysql 延后_详解MySQL 主从同步延迟
  11. 【DFS】LeetCode 77. Combinations
  12. scala function从入门到理解
  13. 使用OWA无法撰写邮件内容的解决法
  14. 2022年山东省安全员C证特种作业证考试题库及答案
  15. 使用CamlBuilder生成CAML查询语句
  16. 数字调制解调技术:第7章-COSATAS环载波频率参数设计问题
  17. PTA 7-114 用if-else语句编程百分制成绩转换为五分制成绩
  18. 2021年全球无水氢氟酸收入大约3120.8百万美元,预计2028年达到3634.6百万美元
  19. 无源波分和彩光模块_无源组网向半有源组网改造的5G前传无源WDM方案
  20. springboot基础学习笔记

热门文章

  1. 定期“肌断食” 让肌肤的完美升级
  2. 火山引擎联合中国信通院发布《边缘云总体技术与测试要求》
  3. 三相LCL型并网逆变器电流闭环虚拟阻尼控制Simulink仿真
  4. 计算时区函数gmt2local(time_t t)
  5. 微软Silverlight简介
  6. 网络安全形势严峻进入“红色警报”阶段
  7. 在线计算过往日期天数,计算活了多少天
  8. Flume监控软件——Ganglia安装与部署
  9. java.io.IOException: unexpected end of stream on https://xxx.xxx.xxx.xxx:84/
  10. 外媒:欧盟推出超级计算机 计划追赶中国