我正在尝试在我的应用程序中添加RTL语言支持(目前具体是阿拉伯语)。我也将支持英语。我已经完成了以下步骤:
- 将minSdkVersion设置为17
- 在
AndroidManifest.xml
中的应用程序标签中添加android:supportsRtl="true"
- 将我的左/右属性切换为start/end
起初,我手动进行了这些更改,然后我使用了Android Studio的“重构->尽可能添加RTL支持...”菜单项。
当我预览布局文件时,我可以看到RTL预览正确地镜像UI。但是,即使我使用“强制RTL布局方向”,我的应用程序也不会显示RTL布局。系统UI被翻转,因此该选项通常有效。
是否还有其他事项需要处理以显示RTL布局?我希望我没有漏掉什么显而易见的东西。我在API 21模拟器上测试了这个。
更新
我继承了部分代码。可能有些设置被覆盖并强制进入LTR模式。我创建了一个测试应用程序来测试RTL模式,它可以正常工作。什么样的代码会导致“Force RTL Layout Direction”设置被忽略(或被覆盖)?
更新2
我已经检查了区域设置是否正确设置,并且确实如此。我还检查了配置,ldrtl
被设置。我在签名的apk文件中验证了android:supportsRtl
是否被包含,并且没有任何布局文件有android:layoutDirection="ltr"
。我甚至尝试手动添加android:layoutDirection="rtl"
来强制镜像布局,但这也没有起作用。
更新3
我向项目中添加了另一个活动,将其设置为启动活动,并确保它未连接到任何现有代码。它是 Activity
的一个子类。问题仍然存在。因此理论上这是一个配置问题。正如我所说,我检查了 AndroidManifest.xml 文件和所有生成的布局文件,RTL 支持和布局更改都已添加进去了。配置可能出了什么问题?