Jetpack compose - 未解析的参考:material3 api 中的 RememberDismissState

问题描述 投票:0回答:1

我想在我的代码中使用 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) })
    }


}
android kotlin material3
1个回答
0
投票

尝试将此行添加到 SwipeToDisMissItem() 函数中。

@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class)

请验证是否已安装正确的材质依赖项,并确保材质依赖项准确。

implementation('androidx.compose.material:$currentLatestVersion')
© www.soinside.com 2019 - 2024. All rights reserved.