android 父或子可组合触发器同时单击

ct3nt3jp  于 2022-12-02  发布在  Android
关注(0)|答案(1)|浏览(165)

我有一个可组合的父母

Row(
    modifier = modifier
        .width(tableWidth)
        .fillMaxHeight(),
) {
    cells.forEachIndexed { it1, cell ->
        Column(
            modifier = Modifier
                .height(tableHeight),
        ) {
            for (i in cell.indices) {
                Box(
                    modifier = Modifier
                        .width(sideBarWidth)
                        .height(headerHeight)
                        .clickable {
                          //event here
                        }
                ) {
                    eventContent(
                        studentScore =  cell,
                        listIndex = it1,
                        index = i,
                        onEvent = onEvent // event here
                    )
                }
            }
        }
    }
}

和一个child,后者是如上所示可组合的eventContent。
我希望父级或子级可组合触发这两个单击事件。如何实现?

0x6upsns

0x6upsns1#

您可以简单地创建一个lambda回调函数,在其中可以将所需的所有内容设置为它的参数。

@Composable
fun MyComposable(onEventCallback: (List, Int, Cell) -> Unit) {

    ...
    ...
    ...

      Box {
          eventContent(
              studentScore =  cell,
              listIndex = it1,
              index = i,
              onEvent = { selectedCell ->
                   onEventCallback(cells, i, selectedCell) // just pass everything on a single call
              }
          )
      }

    ...
    ...
}

您可以简单地从调用位置执行单独的操作

MyComposable { list, index, cell ->
       doSomethingOnTheList(list)
       doSomethingOnIndexAndCell(index, cell)
 }

相关问题