android 有没有可能在compose中重新创建谷歌日历(一个动态放置/锚定视图的LazyColumn)?

brccelvz  于 2023-03-21  发布在  Android
关注(0)|答案(1)|浏览(112)

基本上,我想在compose中重新创建日历屏幕,但我不知道如何动态地放置元素,使它们能够重叠(并在可滚动的背景上覆盖小时)
我能想到的唯一方法是通过画布,而这与使用compose的目的相悖。这可以通过LazyColumn之类的东西来完成吗?屏幕图片用于说明:

f2uvfpb9

f2uvfpb91#

以下是解决方法:

  1. ConstraintLayoutparent layout
    1.为TextView列创建可组合的Function。(或custom composable绘制grid lines/labels
    1.为事件创建可组合函数。(可以是具有事件详细信息的Card
  2. LazyColumn用于显示Events
    1.锚Events锚定到Grid。(将custom modifier锚定到Position
  3. ConstraintSet用于EventsGrid

日历撰写.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

}

相关问题