Browse Source

Apply window insets

pull/4753/head
Oleksandr.Karpovich 4 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.navigationBarsPadding
import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@Composable
actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = this.navigationBarsPadding() actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = this.navigationBarsPadding()
@Composable
actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = this.statusBarsPadding() actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = this.statusBarsPadding()
@Composable
actual fun Modifier.jetSnackSystemBarsPadding(): Modifier = this.systemBarsPadding() 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.animation.slideOutVertically
//import androidx.compose.desktop.ui.tooling.preview.Preview //import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxSize 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.JetsnackDivider
import com.example.jetsnack.ui.components.JetsnackSurface import com.example.jetsnack.ui.components.JetsnackSurface
import com.example.jetsnack.ui.components.SnackCollection import com.example.jetsnack.ui.components.SnackCollection
import com.example.jetsnack.ui.snackdetail.jetSnackStatusBarsPadding
import com.example.jetsnack.ui.theme.JetsnackTheme import com.example.jetsnack.ui.theme.JetsnackTheme
@Composable @Composable
@ -74,9 +76,9 @@ private fun Feed(
) { ) {
JetsnackSurface(modifier = modifier.fillMaxSize()) { JetsnackSurface(modifier = modifier.fillMaxSize()) {
Box { Column {
DestinationBar(modifier = Modifier.jetSnackStatusBarsPadding())
SnackCollectionList(snackCollections, filters, onSnackClick) SnackCollectionList(snackCollections, filters, onSnackClick)
DestinationBar()
} }
} }
} }
@ -94,9 +96,6 @@ private fun SnackCollectionList(
LazyColumn { LazyColumn {
item { item {
Spacer(
Modifier.windowInsetsTopHeight(snackCollectionListItemWindowInsets())
)
FilterBar(filters, onShowFilters = { filtersVisible = true }) FilterBar(filters, onShowFilters = { filtersVisible = true })
} }
itemsIndexed(snackCollections) { index, snackCollection -> 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 expect fun Modifier.jetSnackNavigationBarsPadding(): Modifier
@Composable
expect fun Modifier.jetSnackStatusBarsPadding(): Modifier expect fun Modifier.jetSnackStatusBarsPadding(): Modifier
@Composable
expect fun Modifier.jetSnackSystemBarsPadding(): Modifier expect fun Modifier.jetSnackSystemBarsPadding(): Modifier
//@Preview //@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 package com.example.jetsnack.ui.home
import androidx.compose.foundation.layout.WindowInsets 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.runtime.Composable
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@Composable @Composable
actual fun snackCollectionListItemWindowInsets(): WindowInsets { actual fun snackCollectionListItemWindowInsets(): WindowInsets {
// TODO: implement return WindowInsets.statusBars.add(WindowInsets(top = 56.dp))
// WindowInsets.statusBars.add(WindowInsets(top = 56.dp))
return 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 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 import androidx.compose.ui.Modifier
actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier = this @Composable
// .navigationBarsPadding() actual fun Modifier.jetSnackNavigationBarsPadding(): Modifier =
this.windowInsetsPadding(WindowInsets.navigationBars)
actual fun Modifier.jetSnackStatusBarsPadding(): Modifier = this @Composable
// statusBarsPadding() actual fun Modifier.jetSnackStatusBarsPadding(): Modifier =
actual fun Modifier.jetSnackSystemBarsPadding(): Modifier = this this.windowInsetsPadding(WindowInsets.statusBars)
// Modifier.systemBarsPadding()
@Composable
actual fun Modifier.jetSnackSystemBarsPadding(): Modifier =
this.windowInsetsPadding(WindowInsets.systemBars)
Loading…
Cancel
Save