Skip to content

Commit 1da1d9d

Browse files
authored
Add basic WindowInsetsRulers cases (#621)
1 parent 73e600d commit 1da1d9d

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

compose/snippets/src/main/java/com/example/compose/snippets/layouts/InsetsSnippets.kt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import androidx.compose.foundation.layout.WindowInsetsSides
3131
import androidx.compose.foundation.layout.asPaddingValues
3232
import androidx.compose.foundation.layout.consumeWindowInsets
3333
import androidx.compose.foundation.layout.fillMaxSize
34+
import androidx.compose.foundation.layout.fillMaxWidth
35+
import androidx.compose.foundation.layout.fitInside
3436
import androidx.compose.foundation.layout.ime
3537
import androidx.compose.foundation.layout.imePadding
3638
import androidx.compose.foundation.layout.navigationBars
@@ -49,9 +51,12 @@ import androidx.compose.material3.Scaffold
4951
import androidx.compose.material3.Text
5052
import androidx.compose.material3.TextField
5153
import androidx.compose.runtime.Composable
54+
import androidx.compose.ui.Alignment
5255
import androidx.compose.ui.Alignment.Companion.BottomCenter
5356
import androidx.compose.ui.Modifier
57+
import androidx.compose.ui.layout.RectRulers
5458
import androidx.compose.ui.layout.WindowInsetsRulers
59+
import androidx.compose.ui.layout.innermostOf
5560
import androidx.compose.ui.layout.layout
5661
import androidx.compose.ui.tooling.preview.Preview
5762
import androidx.compose.ui.unit.Constraints
@@ -208,3 +213,53 @@ fun Modifier.alignToSafeDrawing(): Modifier {
208213
}
209214
}
210215
// [END android_compose_insets_rulers]
216+
217+
// [START android_compose_insets_fit_inside]
218+
@Composable
219+
fun FitInsideDemo(modifier: Modifier) {
220+
Box(
221+
modifier = modifier
222+
.fillMaxSize()
223+
// Or DisplayCutout, Ime, NavigationBars, StatusBar, etc...
224+
.fitInside(WindowInsetsRulers.SafeDrawing.current)
225+
)
226+
}
227+
// [END android_compose_insets_fit_inside]
228+
229+
// [START android_compose_insets_rulers_ime]
230+
@Composable
231+
fun FitInsideWithImeDemo(modifier: Modifier) {
232+
Box(
233+
modifier = modifier
234+
.fillMaxSize()
235+
.fitInside(
236+
RectRulers.innermostOf(
237+
WindowInsetsRulers.NavigationBars.current,
238+
WindowInsetsRulers.Ime.current
239+
)
240+
)
241+
) {
242+
TextField(
243+
value = "Demo IME Insets",
244+
onValueChange = {},
245+
modifier = modifier.align(Alignment.BottomStart).fillMaxWidth()
246+
)
247+
}
248+
}
249+
// [END android_compose_insets_rulers_ime]
250+
251+
// [START android_compose_insets_rulers_status_caption_bars]
252+
@Composable
253+
fun FitInsideWithStatusAndCaptionBarDemo(modifier: Modifier) {
254+
Box(
255+
modifier = modifier
256+
.fillMaxSize()
257+
.fitInside(
258+
RectRulers.innermostOf(
259+
WindowInsetsRulers.StatusBars.current,
260+
WindowInsetsRulers.CaptionBar.current
261+
)
262+
)
263+
)
264+
}
265+
// [END android_compose_insets_rulers_status_caption_bars]

0 commit comments

Comments
 (0)