一、背景

在开发Android老项目过程中,使用compose的view进行嵌入,发现在滚动的很多页面中,出现滑动冲突的问题,于是需要进行冲突的手动管理。项目中,外部使用的是Android原生BottomSheetDialog,此组件可以进行下滑关闭的行为,但是在BottomSheetDialog的内部添加了Compose的LazyColumn组件,两个滑动出现了冲突。

二、解决方案

调用方修改

ComposeView(requireContext()).apply {
    setContent {
        val nestedScrollInterop = rememberNestedScrollInteropConnection()
        QuotationMain(
            viewModel = viewModel,
            nestedScrollInterop = nestedScrollInterop
        )
    }
}

组件方使用

fun QuotationMain(
    modifier: Modifier = Modifier,
    viewModel: QuotationViewModel?,
    nestedScrollInterop: NestedScrollConnection
) {
  LazyColumn(
            modifier = Modifier
                .padding(top = 48.dp, bottom = 84.dp)
                .nestedScroll(nestedScrollInterop)
        ) {
          item{}
          item{}
        }
}

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐