基本上,我想在compose中重新创建日历屏幕,但我不知道如何动态地放置元素,使它们能够重叠(并在可滚动的背景上覆盖小时)我能想到的唯一方法是通过画布,而这与使用compose的目的相悖。这可以通过LazyColumn之类的东西来完成吗?屏幕图片用于说明:
f2uvfpb91#
以下是解决方法:
ConstraintLayout
parent layout
Function
custom composable
grid lines
labels
Card
LazyColumn
Events
Grid
custom modifier
Position
ConstraintSet
日历撰写.kt
@Composable fun Day(events: ... ) { // Constraint and Modifier Grid( modifier = ... { // Modifier and Parent } ) LazyColumn( modifier = ... { // Grid and Dimension } ) } @Composable fun Time(modifier: ... ) { // Column, Text and Spacer } @Composable fun Event(modifier: ... ) { // Card and Text }
1条答案
按热度按时间f2uvfpb91#
以下是解决方法:
ConstraintLayout
是parent layout
。1.为TextView列创建可组合的
Function
。(或custom composable
以绘制grid lines
/labels
)1.为事件创建可组合函数。(可以是具有事件详细信息的
Card
)LazyColumn
用于显示Events
。1.锚
Events
锚定到Grid
。(将custom modifier
锚定到Position
)ConstraintSet
用于Events
和Grid
。日历撰写.kt