我的应用支持4种不同的语言,其中两种是从右到左书写的。
如果我从Android系统更改语言,然后启动我的应用程序,一切都正常。我会得到一个镜像布局(RTL),甚至导航栏也会被镜像。
我的问题是,我在应用程序中有一个按钮来更改语言。 要通过编程方式更改语言环境,我正在执行以下操作:
Locale locale = new Locale("ar")
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
然后重新创建该活动:
this.recreate();
活动已经从RTL重新创建,但导航栏仍保留旧样式(未镜像)。
有没有可能通过编程来镜像导航栏?
编辑(添加图片):
如果我更改系统语言,一切正常:
如果我通过编程方式更改语言,导航栏不会随之改变: