更改语言后,将喷气背包中的片段/活动组成 我有一个用于更改应用程序语言的代码。当我使用此代码时,语言确实会发生变化,但没有完全。我所处的页面的某些部分仍在使用旧语言。例如,如果我...

问题描述 投票:0回答:1
如何使此功能可行?是否还有其他需要添加其他代码才能工作?

这就是我在活动中使用代码的方式

Utils.updateLocale(this, App.instance.language)

我尝试脱离并附着碎片。重新创建的活动,仍然无法正常工作。
    

当您在运行时更改语言时,UI的某些部分可能会继续显示旧字符串,因为它们是通过以前的配置组成(或“夸大”)。在JetPack组成(甚至在传统片段中)中,如果仅在资源中更改了语言环境,则UI不会自动更新。取而代之的是,您必须“强制”组合的重新组成(甚至是完整的娱乐),以便他们从资源中拾取新语言。

如果您使用的UI撰写,则可以保存跟踪当前语言的状态,并在更改时使用钥匙强制重新分配,这样。

@Composable fun MainScreen(currentLanguage: String) { key(currentLanguage) { Column(modifier = Modifier.fillMaxSize()) { Text(text = stringResource(id = R.string.hello)) } } }

其他组合友好的方法是通过组成local提供当前的配置(或语言环境)。
android kotlin android-jetpack-compose android-jetpack
1个回答
0
投票

其他方法 - 传统的Android观点更常见的是在语言变化时重新创建活动。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.