【问题标题】:Android12 -> configuration.setLayoutDirection(new Locale("ar")) not workingAndroid12 -> configuration.setLayoutDirection(new Locale(\"ar\")) 不工作
【发布时间】:2023-02-13 19:02:11
【问题描述】:
它适用于其他 Android 版本,但以下代码不适用于 Android 12 设备。我使用“ar”作为语言参数。
val configuration: Configuration = resources.configuration
configuration.setLayoutDirection(Locale(language))
resources.updateConfiguration(configuration, resources.displayMetrics)
【问题讨论】:
标签:
android
kotlin
locale
arabic-support
android-layout-direction
【解决方案1】:
我有同样的问题。也许是一个缓存来重新创建生命周期配置,我用这个:
val intent = activity.intent
activity.finish()
startActivity(intent)
它可以生效。
【解决方案2】:
我遇到了同样的问题并添加了这段代码,现在它可以工作了。我不知道这是否是有效的方法。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
(context as Activity).window.decorView.layoutDirection =
if (Locale.getDefault().language.equals("fa"))
View.LAYOUT_DIRECTION_RTL else View.LAYOUT_DIRECTION_LTR
}