首页 > 解决方案 > 使用导航组件 API 时更改语言 24+

问题描述

TL;DR 我们想要更改要显示的片段的区域设置(API 24+),而所有这些片段都将在同一个活动中。

我们正在使用NavHostFragmentstart_up_nav_graph.xml。该图有多个片段,即登录、入职、GDPR ..etc

在此流程中,如果登录后我们发现您是德国用户,我们会尝试将您的语言环境更改为德语。在当前场景中,所有即将出现的片段(例如入职和 GDPR)都将显示在设备的区域设置中,而不是德语。

我们不能attachBaseContext在这个答案这样的活动中使用,因为活动已经创建。

标签: androidandroid-fragmentslocalizationandroid-architecture-componentsandroid-architecture-navigation

解决方案


我正在经历同样的痛苦兄弟。我试着做

NavigationUI.setupWithNavController(mToolbar,mNavController, mAppBarConfiguration);

但这也无济于事,因为工具栏标题和导航抽屉项目正在使用旧资源,当我这样做时activity.recreate(),它实际上正在发生,但是当你关闭应用程序并再次重新启动它时,同样的问题......


推荐阅读