小编Moh*_*chi的帖子

使用 JetPack Compose 更改 Android 语言

我正在尝试使用 jetpack compose 函数更改应用程序的区域设置,如下所示

  @Composable
 fun SetLanguage(position: Int) {
    val locale = Locale(
        when (position) {
            0 -> "ar"
            1 -> "en"
            2 -> "fr"
            else -> {
                "ar"
            }
        }
    )
    Locale.setDefault(locale)
    val configuration = LocalConfiguration.current
    configuration.setLocale(locale)
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
        configuration.setLocale(locale)
    else
        configuration.locale = locale
    var resources = LocalContext.current.resources
    resources.updateConfiguration(configuration, resources.displayMetrics)

}
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看工作示例(没有按钮或文本字段) https://github.com/MakeItEasyDev/Jetpack-Compose-Multi-Language-Support

但问题是不适用于 OutlinedTextField 或 Button,因为调用此函数时它们不会改变,甚至 rightToLeft 支持也不起作用,而且我找不到解决此问题的良好替代方案,因为我无法在项目中重新创建活动

android kotlin android-jetpack android-jetpack-compose

5
推荐指数
1
解决办法
6168
查看次数