如何在android中动态更改区域设置和布局?
我正在开发一个应用程序,使用3种语言的文本。英语、库尔德语和阿拉伯语。我试图在用户更改语言时动态更改布局。我有一个设置屏幕,用户可以在其中更改语言,即我不是在系统设置中更改语言,而是在我的应用程序中更改语言。例如,如果我从库尔德语改为英语,布局应该从RTL改为LTR,反之亦然。我尝试使用OnConfigUserOnChanged(),但它没有被触发 我有这个问题的答案 我试过了如何在android中动态更改区域设置和布局?,android,Android,我正在开发一个应用程序,使用3种语言的文本。英语、库尔德语和阿拉伯语。我试图在用户更改语言时动态更改布局。我有一个设置屏幕,用户可以在其中更改语言,即我不是在系统设置中更改语言,而是在我的应用程序中更改语言。例如,如果我从库尔德语改为英语,布局应该从RTL改为LTR,反之亦然。我尝试使用OnConfigUserOnChanged(),但它没有被触发 我有这个问题的答案 我试过了 , 没有成功 我尝试了onResume(),它会被触发,但当语言更改时,布局不会更改。我使用以下代码更改区域设置
@Override
protected void onResume() {
getResources().updateConfiguration(LocaleSingleton.getInstance().getConfig(), getResources().getDisplayMetrics());
AsyncData data = new AsyncData();
data.execute(String.valueOf(id), Constants.SERVER + "ad_detail.php");
super.onResume();
}
感谢您的帮助。提前谢谢。
编辑:我还尝试重新启动onResume()中的活动,但只得到一个黑屏。再次感谢。将此添加到清单中的活动中
<activity
android:name=".YourActivity"
android:configChanges="orientation|keyboardHidden|screenSize" >
</activity>
对不起,我指的是OnConfiguration Changed()。您尝试过发布的解决方案吗?基本上,当您更改方向时,方向会强制您的活动转到OnConfiguration Changed(),并且在4.0之后也需要屏幕大小。我不确定,但我猜键盘隐藏会在你改变方向时迫使你的键盘关闭。不起作用吗?这是所有安卓设备使用的配置。如果它不起作用,您可能会从设备上的设备设置中停用方向更改。