fix: Snackbar 滑动关闭
This commit is contained in:
parent
615dacfbd7
commit
7eac0d1edc
|
|
@ -2,7 +2,19 @@ package com.huanchengfly.tieba.post.ui.widgets.compose
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.ColumnScope
|
import androidx.compose.foundation.layout.ColumnScope
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.material.*
|
import androidx.compose.material.DismissValue
|
||||||
|
import androidx.compose.material.DrawerDefaults
|
||||||
|
import androidx.compose.material.ExperimentalMaterialApi
|
||||||
|
import androidx.compose.material.FabPosition
|
||||||
|
import androidx.compose.material.MaterialTheme
|
||||||
|
import androidx.compose.material.Scaffold
|
||||||
|
import androidx.compose.material.ScaffoldState
|
||||||
|
import androidx.compose.material.SnackbarHost
|
||||||
|
import androidx.compose.material.SnackbarHostState
|
||||||
|
import androidx.compose.material.SwipeToDismiss
|
||||||
|
import androidx.compose.material.contentColorFor
|
||||||
|
import androidx.compose.material.rememberDismissState
|
||||||
|
import androidx.compose.material.rememberScaffoldState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
|
@ -11,20 +23,22 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.Shape
|
import androidx.compose.ui.graphics.Shape
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterialApi::class)
|
@OptIn(ExperimentalMaterialApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
private fun SwipeToDismissSnackbarHost(hostState: SnackbarHostState) {
|
private fun SwipeToDismissSnackbarHost(hostState: SnackbarHostState) {
|
||||||
val dismissState = rememberDismissState(
|
val dismissState = rememberDismissState(
|
||||||
confirmStateChange = {
|
confirmStateChange = { value ->
|
||||||
|
if (value != DismissValue.Default) {
|
||||||
hostState.currentSnackbarData?.dismiss()
|
hostState.currentSnackbarData?.dismiss()
|
||||||
true
|
true
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
LaunchedEffect(hostState.currentSnackbarData) {
|
LaunchedEffect(dismissState.currentValue) {
|
||||||
if (hostState.currentSnackbarData == null) {
|
if (dismissState.currentValue != DismissValue.Default) {
|
||||||
delay(75)
|
|
||||||
dismissState.reset()
|
dismissState.reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue