如何修复Jetpack Compose中LazyColumn最后一项点击滚动异常问题
问题:AppCompatActivity托管的Fragment中LazyColumn点击最后一项时自动上滚
- 异常表现:该问题仅在AppCompatActivity托管的Fragment的ComposeView中出现,Component Activity里完全正常。当点击LazyColumn最后一项的可点击元素(比如文本、图标按钮)时,列表会轻微向上滚动,导致被点击的元素移出视野,影响体验。
- 场景说明:使用LazyColumn展示列表项,每个项包含可点击字段或复选框;首次点击最后一项的可点击元素时触发异常滚动。
- 已尝试无效方案:通过
LazyListState管理滚动位置,调用animateScrollToItem()滚动至最后一项,仍无法解决首次点击时的上滚问题。
相关代码
@Composable fun DummyScreen() { val state= rememberLazyListState() AppTheme { Scaffold { contentPadding -> LazyColumn( state = state, modifier = Modifier.padding(contentPadding) ) { items(3) { index -> Card( modifier = Modifier .fillMaxWidth() .height(320.dp) .padding(8.dp) .background(Color.Red) ) { Text( text = "item ${index}", modifier = Modifier.clickable { // 执行操作 } ) } } } } } }
内容的提问来源于stack exchange,提问作者Santhosh Kumar
相关产品推荐
相关产品推荐

