Класс LocalConfiguration
Объект LocalConfiguration
из androidx.compose.ui.platform
это composition local с
Configuration.
В composable текущую конфигурацию берут
как LocalConfiguration.current.
При повороте экрана или смене локали
значение меняется и запускается перекомпозиция.
Язык читают из locales,
как у LocaleList.
Синтаксис
val config = LocalConfiguration.current
Пример
Давайте покажем ширину экрана в dp из Configuration:
import android.content.res.Configuration
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.ui.platform.LocalConfiguration
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val config = LocalConfiguration.current
val line = when (config.orientation) {
Configuration.ORIENTATION_LANDSCAPE -> "abcde"
else -> "12345"
}
Text(text = line)
}
}
}
На экране "abcde" в альбомной ориентации
и "12345" в портретной.
Смотрите также
-
класс
Configuration,
который хранится в LocalConfiguration -
класс
LocalContext,
соседний composition local для context -
класс
LocaleList,
доступный через config.locales -
метод
createConfigurationContext,
который меняет Configuration вне Compose