以下为开发过程中查看的博客
Android 中东阿拉伯语适配
Android国际化,阿语RTL适配总结
下面是对以上内容的补充和注意点提示,多语言设置和阿拉伯 string.xml已添加
一、应用设置支持RTL
在 AndroidManifest.xml 文件中 application 节点添加支持从右到左布局方式代码
<application>
...
android:supportsRtl="true" >
...
</application>
二 、图片引用时设置自动RTL,如下图
注:如果是代码动态设置图片时使用setCompoundDrawables,需要改成setCompoundDrawablesRelative,这时如果语言为阿拉伯语图片才会自动翻转
三、EditText 属性设置
Android 中东阿拉伯语适配
链接内的
使用EditText全局样式
<style name="EditTextStyle.Alignment" parent="@android:style/Widget.EditText">
<item name="android:textAlignment">viewStart</item>
<item name="android:gravity">start</item>
<!-- <item name="android:textDirection">locale</item>-->
</style>
四、内边距和外边距修改,主要是将以下的属性进行替换
paddingLeft -> paddingStart
paddingRight -> paddingEnd
layout_marginLeft -> layout_marginstart
layout_maringRight -> layout_marginEnd
五、recyclerview使用 ItemDecoration时 需要将RTL 考虑进去,否则可能出现间距变宽或变窄情况
六、 Activity 设置应用内语言后,布局未RTL 调整 设置应用内语言切换,调用Activity recreate() 后,语言文案切换了,但是布局未自动RTL 需要重新启动App 才生效, 这种情况可以在 该 Activity 的onCreate() 方法内设置
val config = resources.configuration
mBinding.root.layoutDirection = config.layoutDirection //mBinding.root 是activity 的根布局
即可设置语言后,马上生效,不用重新启动app