MutableWindowInsets
Class
Common
@ExperimentalLayoutApi
class MutableWindowInsets(initialInsets: WindowInsets = WindowInsets(0, 0, 0, 0)) : WindowInsets
A WindowInsets whose values can change without changing the instance. This is useful to avoid
recomposition when WindowInsets can change.
Note: This API as experimental since it doesn't enforce the right consumption patterns.
Properties
Common
var insets
The WindowInsets that are used for left, top, right, and
bottom values.
Code Examples
withConsumedInsetsSample
@OptIn(ExperimentalLayoutApi::class)
fun withConsumedInsetsSample() {
class SampleActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
WindowCompat.setDecorFitsSystemWindows(window, false)
super.onCreate(savedInstanceState)
setContent {
val remainingInsets = remember { MutableWindowInsets() }
val safeContent = WindowInsets.safeContent
Box(
Modifier.navigationBarsPadding().onConsumedWindowInsetsChanged {
consumedWindowInsets ->
remainingInsets.insets = safeContent.exclude(consumedWindowInsets)
}
) {
// padding can be used without recomposition when insets change.
val padding = remainingInsets.asPaddingValues()
Box(Modifier.padding(padding))
}
}
}
}
}
