Browse Source

Apply window insets

pull/4753/head
Oleksandr.Karpovich 2 weeks ago
parent
commit
b13e7e021e
  1. 4
      examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt
  2. 9
      examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/home/Feed.kt
  3. 3
      examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/snackdetail/SnackDetail.kt
  4. 6
      examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/snackCollectionListItemWindowInsets.kt
  5. 22
      examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt

4
examples/jetsnack/common/src/androidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt

@ -3,8 +3,12 @@ package com.example.jetsnack.ui.snackdetail
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@Composable
actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = this.navigationBarsPadding()
@Composable
actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = this.statusBarsPadding()
@Composable
actual fun Modifier.jetSnackSystemBarsPadding(): Modifier = this.systemBarsPadding()

9
examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/home/Feed.kt

@ -26,6 +26,7 @@ import androidx.compose.animation.slideInVertically
import androidx.compose.animation.slideOutVertically
//import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxSize
@ -48,6 +49,7 @@ import com.example.jetsnack.ui.components.FilterBar
import com.example.jetsnack.ui.components.JetsnackDivider
import com.example.jetsnack.ui.components.JetsnackSurface
import com.example.jetsnack.ui.components.SnackCollection
import com.example.jetsnack.ui.snackdetail.jetSnackStatusBarsPadding
import com.example.jetsnack.ui.theme.JetsnackTheme
@Composable
@ -74,9 +76,9 @@ private fun Feed(
) {
JetsnackSurface(modifier = modifier.fillMaxSize()) {
Box {
Column {
DestinationBar(modifier = Modifier.jetSnackStatusBarsPadding())
SnackCollectionList(snackCollections, filters, onSnackClick)
DestinationBar()
}
}
}
@ -94,9 +96,6 @@ private fun SnackCollectionList(
LazyColumn {
item {
Spacer(
Modifier.windowInsetsTopHeight(snackCollectionListItemWindowInsets())
)
FilterBar(filters, onShowFilters = { filtersVisible = true })
}
itemsIndexed(snackCollections) { index, snackCollection ->

3
examples/jetsnack/common/src/commonMain/kotlin/com/example/jetsnack/ui/snackdetail/SnackDetail.kt

@ -389,8 +389,11 @@ private fun CartBottomBar(modifier: Modifier = Modifier) {
}
}
@Composable
expect fun Modifier.jetSnackNavigationBarsPadding(): Modifier
@Composable
expect fun Modifier.jetSnackStatusBarsPadding(): Modifier
@Composable
expect fun Modifier.jetSnackSystemBarsPadding(): Modifier
//@Preview

6
examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/home/snackCollectionListItemWindowInsets.kt

@ -1,12 +1,12 @@
package com.example.jetsnack.ui.home
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.add
import androidx.compose.foundation.layout.statusBars
import androidx.compose.runtime.Composable
import androidx.compose.ui.unit.dp
@Composable
actual fun snackCollectionListItemWindowInsets(): WindowInsets {
// TODO: implement
// WindowInsets.statusBars.add(WindowInsets(top = 56.dp))
return WindowInsets(top = 56.dp)
return WindowInsets.statusBars.add(WindowInsets(top = 56.dp))
}

22
examples/jetsnack/common/src/nonAndroidMain/kotlin/com/example/jetsnack/ui/snackdetail/jetSnackNavigationBarsPadding.kt

@ -1,11 +1,21 @@
package com.example.jetsnack.ui.snackdetail
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.statusBars
import androidx.compose.foundation.layout.systemBars
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = this
// .navigationBarsPadding()
@Composable
actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier =
this.windowInsetsPadding(WindowInsets.navigationBars)
actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = this
// statusBarsPadding()
actual fun Modifier.jetSnackSystemBarsPadding(): Modifier = this
// Modifier.systemBarsPadding()
@Composable
actual fun Modifier.jetSnackStatusBarsPadding(): Modifier =
this.windowInsetsPadding(WindowInsets.statusBars)
@Composable
actual fun Modifier.jetSnackSystemBarsPadding(): Modifier =
this.windowInsetsPadding(WindowInsets.systemBars)
Loading…
Cancel
Save