个人技术分享

一、背景

        在现有Android项目中使用Compose可能存在滑动冲突问题,例如
SmartRefreshLayout+CoordinatorLayout+ComposeView(ComposeView这里又是一个LazyColumn)

二、解决方案

        官方介绍:https://developer.android.google.cn/develop/ui/compose/touch-input/pointer-input/scroll?hl=sk

        如果基于以上原因出现滚动问题,可以在Compose中使用以下方式解决

   binding.composeConfigList.setContent {
            // fix滑动冲突问题
            val nestedScrollInterop = rememberNestedScrollInteropConnection()
            SettingConfig(settingConfig.value, showRedDot.value, nestedScrollInterop, configClick = {
                })
        }
@Composable
fun SettingConfig(
    data: List<ConfigData>,
    showRedDot: Boolean,
    nestedScrollInterop: NestedScrollConnection,
    configClick: (ConfigData) -> Unit
) {
    LazyColumn(modifier = Modifier.nestedScroll(nestedScrollInterop)) {
        items(data) {
            ItemConfig(it, showRedDot, configClick)
        }
    }
}