You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose Material3中rememberDismissState引用未解决求助

解决"Unresolved reference: rememberDismissState"问题

出现该错误的核心原因是依赖配置、导入语句或版本兼容问题,以下是具体解决步骤:

1. 确认Material3依赖版本

在Module级的build.gradle(或build.gradle.kts)文件中,确保引入的Material3版本满足要求(建议使用1.1.0及以上稳定版),示例配置如下:

dependencies {
    // 替换为项目适配的最新Material3稳定版
    implementation("androidx.compose.material3:material3:1.2.0")
}

2. 添加缺失的导入语句

rememberDismissState属于androidx.compose.material3包下的Experimental API,需要在代码顶部补充导入:

import androidx.compose.material3.rememberDismissState

3. 同步并重建项目

完成上述操作后,点击Android Studio右上角的Sync Now同步Gradle依赖,再依次执行Build -> Clean Project和Build -> Rebuild Project,确保依赖正确加载。

修改后的完整代码

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.material3.rememberDismissState
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) })
    }
}

内容的提问来源于stack exchange,提问作者Sakshi Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 10:05:10