android 如何使LazyColumn在Compose中的约束布局中可滚动

23c0lvtd  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(268)

我创建了一个约束布局,它包含一个LazyColumn。但是,当元素不适合屏幕时,我无法滚动该列。我如何解决这个问题?
我试着添加state = rememberLazyListState(),但它不工作。

  1. ConstraintLayout(
  2. Modifier
  3. .fillMaxSize()
  4. .padding(padding))
  5. {
  6. val (text, btns, list) = createRefs()
  7. Column(
  8. modifier = Modifier
  9. .constrainAs(text) { top.linkTo(parent.top); bottom.linkTo(btns.bottom) }
  10. .fillMaxWidth()
  11. .padding(50.dp),
  12. horizontalAlignment = Alignment.CenterHorizontally
  13. ) { /* Composables */ }
  14. Column(
  15. modifier = Modifier
  16. .constrainAs(btns) { top.linkTo(text.bottom) }
  17. .fillMaxWidth(),
  18. horizontalAlignment = Alignment.CenterHorizontally,
  19. verticalArrangement = Arrangement.Center
  20. ) { /* Composables */ }
  21. Column(
  22. modifier = Modifier
  23. .constrainAs(list) { top.linkTo(btns.bottom) }
  24. .fillMaxWidth()
  25. .padding(25.dp),
  26. horizontalAlignment = Alignment.CenterHorizontally
  27. ) {
  28. // test
  29. Text(text = "List:", fontWeight = FontWeight.Bold, fontSize = 25.sp)
  30. LazyColumn( state = rememberLazyListState(), horizontalAlignment = Alignment.CenterHorizontally) {
  31. items(monomios.keys.toTypedArray()) {
  32. Row(modifier = Modifier.padding(25.dp).background(color = Color.Red)) {
  33. Text(text = (it).toString())
  34. Icon(painter = painterResource(id = R.drawable.cruz), contentDescription = "")
  35. }
  36. }
  37. }
  38. }
  39. }

字符串

ep6jt1vc

ep6jt1vc1#

要在ConstraintLayout中为LazyColumn启用滚动,您需要确保LazyColumn具有足够的高度来容纳其内容,并且将其放置在可滚动容器中。

相关问题