Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ import androidx.compose.foundation.layout.WindowInsetsSides
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.fitInside
import androidx.compose.foundation.layout.ime
import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.navigationBars
Expand All @@ -49,9 +51,12 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment.Companion.BottomCenter
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.RectRulers
import androidx.compose.ui.layout.WindowInsetsRulers
import androidx.compose.ui.layout.innermostOf
import androidx.compose.ui.layout.layout
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Constraints
Expand Down Expand Up @@ -208,3 +213,53 @@ fun Modifier.alignToSafeDrawing(): Modifier {
}
}
// [END android_compose_insets_rulers]

// [START android_compose_insets_fit_inside]
@Composable
fun FitInsideDemo(modifier: Modifier) {
Box(
modifier = modifier
.fillMaxSize()
// Or DisplayCutout, Ime, NavigationBars, StatusBar, etc...
.fitInside(WindowInsetsRulers.SafeDrawing.current)
)
}
// [END android_compose_insets_fit_inside]

// [START android_compose_insets_rulers_ime]
@Composable
fun FitInsideWithImeDemo(modifier: Modifier) {
Box(
modifier = modifier
.fillMaxSize()
.fitInside(
RectRulers.innermostOf(
WindowInsetsRulers.NavigationBars.current,
WindowInsetsRulers.Ime.current
)
)
) {
TextField(
value = "Demo IME Insets",
onValueChange = {},
modifier = modifier.align(Alignment.BottomStart).fillMaxWidth()
)
}
}
// [END android_compose_insets_rulers_ime]

// [START android_compose_insets_rulers_status_caption_bars]
@Composable
fun FitInsideWithStatusAndCaptionBarDemo(modifier: Modifier) {
Box(
modifier = modifier
.fillMaxSize()
.fitInside(
RectRulers.innermostOf(
WindowInsetsRulers.StatusBars.current,
WindowInsetsRulers.CaptionBar.current
)
)
)
}
// [END android_compose_insets_rulers_status_caption_bars]