Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中动态更改区域设置和布局?_Android - Fatal编程技术网

如何在android中动态更改区域设置和布局?

如何在android中动态更改区域设置和布局?,android,Android,我正在开发一个应用程序,使用3种语言的文本。英语、库尔德语和阿拉伯语。我试图在用户更改语言时动态更改布局。我有一个设置屏幕,用户可以在其中更改语言,即我不是在系统设置中更改语言,而是在我的应用程序中更改语言。例如,如果我从库尔德语改为英语,布局应该从RTL改为LTR,反之亦然。我尝试使用OnConfigUserOnChanged(),但它没有被触发 我有这个问题的答案 我试过了 , 没有成功 我尝试了onResume(),它会被触发,但当语言更改时,布局不会更改。我使用以下代码更改区域设置

我正在开发一个应用程序,使用3种语言的文本。英语、库尔德语和阿拉伯语。我试图在用户更改语言时动态更改布局。我有一个设置屏幕,用户可以在其中更改语言,即我不是在系统设置中更改语言,而是在我的应用程序中更改语言。例如,如果我从库尔德语改为英语,布局应该从RTL改为LTR,反之亦然。我尝试使用OnConfigUserOnChanged(),但它没有被触发

我有这个问题的答案

我试过了

  • ,

  • 没有成功

    我尝试了onResume(),它会被触发,但当语言更改时,布局不会更改。我使用以下代码更改区域设置。LocaleSingleton是我创建用来保存配置实例的类

    @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之后也需要屏幕大小。我不确定,但我猜键盘隐藏会在你改变方向时迫使你的键盘关闭。不起作用吗?这是所有安卓设备使用的配置。如果它不起作用,您可能会从设备上的设备设置中停用方向更改。