我想在我的代码中使用 SwipeToDismiss() api。为此,我使用 RememberDismissState() 来存储状态,但它不起作用。它说“未解析的引用:rememberDismissState”。
谁能告诉我这个问题的解决方案?
以下是完整代码 -
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.animation.expandVertically
import androidx.compose.animation.shrinkVertically
import androidx.compose.material3.DismissDirection
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.SwipeToDismiss
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Dp
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun SwipeToDisMissItem(
modifier: Modifier = Modifier,
directions: Set<DismissDirection> = setOf(DismissDirection.EndToStart),
enter: EnterTransition = expandVertically(),
exit: ExitTransition = shrinkVertically(),
background: @Composable (offset: Dp) -> Unit,
content: @Composable (isDismissed: Boolean) -> Unit
) {
val dismissState = rememberDismissState()
val isDismissed = dismissState.isDismissed(DismissDirection.EndToStart)
val offset = with(LocalDensity.current) { dismissState.progress.toDp() }
AnimatedVisibility(
visible = !isDismissed,
modifier = modifier,
enter = enter,
exit = exit
) {
SwipeToDismiss(
state = dismissState,
background = { background(offset) },
dismissContent = { content(isDismissed) })
}
}
尝试将此行添加到 SwipeToDisMissItem() 函数中。
@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class)
请验证是否已安装正确的材质依赖项,并确保材质依赖项准确。
implementation('androidx.compose.material:$currentLatestVersion')