问题描述
我需要更改应用程序内部的布局方向,从 LTR 到 RTL,反之亦然,我在网上看没有明确的解决方案,这个过程是否简单,我的意思是它必须是应用程序内部的属性,您可以更改这个属性很容易适用于您应用中的所有布局,有什么想法吗?
注意:我想更改应用程序中的语言和布局。
解决方法
- 将您的设备置于 RTL 模式,您可以在开发设置(强制 RTL 布局方向)中执行此操作。
- 您应该确保您的所有布局不使用“左”和“右”属性,例如
layout_marginLeft
,而应使用layout_marginStart
和layout_marginEnd
。
这意味着当在设置为从右到左阅读(例如阿拉伯语)的设备上运行时,所有布局都将正确镜像。
如果您不想将整个设备更改为 RTL,请将其粘贴到您应用中 every Activity 的 onCreate
方法中(将其粘贴在 super
和在膨胀内容视图之前。
Java:getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
科特林:window.decorView.layoutDirection = View.LAYOUT_DIRECTION_RTL
(我认为您不需要将其添加到每个片段中,只需将其添加到活动中)。
,你可以像这样强制 RTL
window.decorView.layoutDirection = View.LAYOUT_DIRECTION_RTL
您也可以将其设置为 LAYOUT_DIRECTION_LTR
表示从左到右的布局方向