Android 阿拉伯语 UI适配

957 阅读1分钟

以下为开发过程中查看的博客

Android 中东阿拉伯语适配

juejin.cn/post/684490…

Android国际化,阿语RTL适配总结

blog.csdn.net/jw_66666/ar…

下面是对以上内容的补充和注意点提示,多语言设置和阿拉伯 string.xml已添加

一、应用设置支持RTL

在 AndroidManifest.xml 文件中 application 节点添加支持从右到左布局方式代码

<application>

       ...        

        android:supportsRtl="true" >

        ...

</application>

二 、图片引用时设置自动RTL,如下图

e964c4aeb78791a24d2e71e23bd419b2.png

注:如果是代码动态设置图片时使用setCompoundDrawables,需要改成setCompoundDrawablesRelative,这时如果语言为阿拉伯语图片才会自动翻转

三、EditText 属性设置

Android 中东阿拉伯语适配

juejin.cn/post/684490…

链接内的

使用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