fix: Keyboard overlaps FABs #172
This commit is contained in:
parent
99af43928d
commit
9e30ff0ce7
@ -14,18 +14,15 @@ import androidx.compose.foundation.layout.BoxWithConstraints
|
|||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.ColumnScope
|
import androidx.compose.foundation.layout.ColumnScope
|
||||||
import androidx.compose.foundation.layout.FlowRow
|
import androidx.compose.foundation.layout.FlowRow
|
||||||
import androidx.compose.foundation.layout.MutableWindowInsets
|
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.RowScope
|
import androidx.compose.foundation.layout.RowScope
|
||||||
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.consumeWindowInsets
|
import androidx.compose.foundation.layout.consumeWindowInsets
|
||||||
import androidx.compose.foundation.layout.exclude
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.onConsumedWindowInsetsChanged
|
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
@ -228,13 +225,9 @@ fun WatchtowerScreen2(
|
|||||||
scrollBehavior: TopAppBarScrollBehavior,
|
scrollBehavior: TopAppBarScrollBehavior,
|
||||||
) {
|
) {
|
||||||
val contentWindowInsets = scaffoldContentWindowInsets
|
val contentWindowInsets = scaffoldContentWindowInsets
|
||||||
val remainingInsets = remember { MutableWindowInsets() }
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.nestedScroll(scrollBehavior.nestedScrollConnection)
|
.nestedScroll(scrollBehavior.nestedScrollConnection),
|
||||||
.onConsumedWindowInsetsChanged { consumedWindowInsets ->
|
|
||||||
remainingInsets.insets = contentWindowInsets.exclude(consumedWindowInsets)
|
|
||||||
},
|
|
||||||
topBar = {
|
topBar = {
|
||||||
if (tabletUi) {
|
if (tabletUi) {
|
||||||
return@Scaffold
|
return@Scaffold
|
||||||
@ -261,7 +254,7 @@ fun WatchtowerScreen2(
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
containerColor = LocalSurfaceColor.current,
|
containerColor = LocalSurfaceColor.current,
|
||||||
contentWindowInsets = remainingInsets,
|
contentWindowInsets = contentWindowInsets,
|
||||||
) { contentPadding ->
|
) { contentPadding ->
|
||||||
ContentLayout(
|
ContentLayout(
|
||||||
contentInsets = contentWindowInsets,
|
contentInsets = contentWindowInsets,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.artemchep.keyguard.ui
|
package com.artemchep.keyguard.ui
|
||||||
|
|
||||||
import androidx.compose.animation.AnimatedVisibility
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.animation.ExperimentalAnimationApi
|
|
||||||
import androidx.compose.animation.animateColorAsState
|
import androidx.compose.animation.animateColorAsState
|
||||||
import androidx.compose.animation.expandIn
|
import androidx.compose.animation.expandIn
|
||||||
import androidx.compose.animation.fadeIn
|
import androidx.compose.animation.fadeIn
|
||||||
@ -15,21 +14,14 @@ import androidx.compose.foundation.layout.Box
|
|||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.ColumnScope
|
import androidx.compose.foundation.layout.ColumnScope
|
||||||
import androidx.compose.foundation.layout.ExperimentalLayoutApi
|
import androidx.compose.foundation.layout.ExperimentalLayoutApi
|
||||||
import androidx.compose.foundation.layout.MutableWindowInsets
|
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
import androidx.compose.foundation.layout.WindowInsetsSides
|
|
||||||
import androidx.compose.foundation.layout.consumeWindowInsets
|
import androidx.compose.foundation.layout.consumeWindowInsets
|
||||||
import androidx.compose.foundation.layout.exclude
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.onConsumedWindowInsetsChanged
|
|
||||||
import androidx.compose.foundation.layout.only
|
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.systemBars
|
|
||||||
import androidx.compose.foundation.layout.union
|
import androidx.compose.foundation.layout.union
|
||||||
import androidx.compose.foundation.layout.widthIn
|
import androidx.compose.foundation.layout.widthIn
|
||||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.LazyListScope
|
import androidx.compose.foundation.lazy.LazyListScope
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
@ -70,8 +62,6 @@ import androidx.compose.ui.unit.IntSize
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.artemchep.keyguard.platform.leDisplayCutout
|
import com.artemchep.keyguard.platform.leDisplayCutout
|
||||||
import com.artemchep.keyguard.platform.leIme
|
import com.artemchep.keyguard.platform.leIme
|
||||||
import com.artemchep.keyguard.platform.leNavigationBars
|
|
||||||
import com.artemchep.keyguard.platform.leStatusBars
|
|
||||||
import com.artemchep.keyguard.platform.leSystemBars
|
import com.artemchep.keyguard.platform.leSystemBars
|
||||||
import com.artemchep.keyguard.res.Res
|
import com.artemchep.keyguard.res.Res
|
||||||
import com.artemchep.keyguard.ui.scrollbar.ColumnScrollbar
|
import com.artemchep.keyguard.ui.scrollbar.ColumnScrollbar
|
||||||
@ -123,12 +113,8 @@ fun ScaffoldLazyColumn(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val remainingInsets = remember { MutableWindowInsets() }
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = modifier
|
modifier = modifier,
|
||||||
.onConsumedWindowInsetsChanged { consumedWindowInsets ->
|
|
||||||
remainingInsets.insets = contentWindowInsets.exclude(consumedWindowInsets)
|
|
||||||
},
|
|
||||||
topBar = topBar,
|
topBar = topBar,
|
||||||
bottomBar = bottomBar,
|
bottomBar = bottomBar,
|
||||||
snackbarHost = snackbarHost,
|
snackbarHost = snackbarHost,
|
||||||
@ -148,7 +134,7 @@ fun ScaffoldLazyColumn(
|
|||||||
floatingActionButtonPosition = floatingActionButtonPosition,
|
floatingActionButtonPosition = floatingActionButtonPosition,
|
||||||
containerColor = containerColor,
|
containerColor = containerColor,
|
||||||
contentColor = contentColor,
|
contentColor = contentColor,
|
||||||
contentWindowInsets = remainingInsets,
|
contentWindowInsets = contentWindowInsets,
|
||||||
) { contentPadding ->
|
) { contentPadding ->
|
||||||
val contentPaddingWithFab = calculatePaddingWithFab(
|
val contentPaddingWithFab = calculatePaddingWithFab(
|
||||||
contentPadding = contentPadding,
|
contentPadding = contentPadding,
|
||||||
@ -204,12 +190,8 @@ fun ScaffoldColumn(
|
|||||||
columnScrollState: ScrollState = rememberScrollState(),
|
columnScrollState: ScrollState = rememberScrollState(),
|
||||||
columnContent: @Composable ColumnScope.() -> Unit,
|
columnContent: @Composable ColumnScope.() -> Unit,
|
||||||
) {
|
) {
|
||||||
val remainingInsets = remember { MutableWindowInsets() }
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = modifier
|
modifier = modifier,
|
||||||
.onConsumedWindowInsetsChanged { consumedWindowInsets ->
|
|
||||||
remainingInsets.insets = contentWindowInsets.exclude(consumedWindowInsets)
|
|
||||||
},
|
|
||||||
topBar = topBar,
|
topBar = topBar,
|
||||||
bottomBar = bottomBar,
|
bottomBar = bottomBar,
|
||||||
snackbarHost = snackbarHost,
|
snackbarHost = snackbarHost,
|
||||||
@ -229,7 +211,7 @@ fun ScaffoldColumn(
|
|||||||
floatingActionButtonPosition = floatingActionButtonPosition,
|
floatingActionButtonPosition = floatingActionButtonPosition,
|
||||||
containerColor = containerColor,
|
containerColor = containerColor,
|
||||||
contentColor = contentColor,
|
contentColor = contentColor,
|
||||||
contentWindowInsets = remainingInsets,
|
contentWindowInsets = contentWindowInsets,
|
||||||
) { contentPadding ->
|
) { contentPadding ->
|
||||||
val contentPaddingWithFab = calculatePaddingWithFab(
|
val contentPaddingWithFab = calculatePaddingWithFab(
|
||||||
contentPadding = contentPadding,
|
contentPadding = contentPadding,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user