Класс WindowInsets
Класс WindowInsets описывает области экрана,
которые система отводит под статусную строку,
навигацию, вырез и клавиатуру.
Именованные значения передают в методы
Modifier,
например windowInsetsPadding
и imePadding.
Так контент не уходит под системные элементы.
Синтаксис
Modifier.windowInsetsPadding(WindowInsets.statusBars)
Значения
| Значение | Описание |
|---|---|
statusBars |
Область статусной строки сверху экрана. |
navigationBars |
Область панели навигации снизу или сбоку. |
systemBars |
Статусная строка и панель навигации вместе. |
ime |
Область экранной клавиатуры, когда она открыта. |
safeDrawing |
Безопасная область для рисования с учётом системных панелей и выреза. |
displayCutout |
Область выреза или камеры в экране. |
Пример
Давайте отступим текст от статусной строки:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.statusBars
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "abcde",
modifier = Modifier.windowInsetsPadding(
WindowInsets.statusBars,
),
)
}
}
}
На экране текст начнётся ниже статусной строки.
Смотрите также
-
метод
statusBarsPadding,
который добавляет отступ под статусную строку -
метод
navigationBarsPadding,
который добавляет отступ под панель навигации -
метод
imePadding,
который поднимает контент над клавиатурой -
метод
systemBarsPadding,
который учитывает статус и навигацию сразу