Compose: можно ли передавать события указателя другим компонуемым?

Я пытаюсь сделать несколько наложений в определенных позициях, выделяя и выделяя текстовые области в BasicTextField, и при этом иметь возможность дважды нажать, чтобы открыть этот раздел в другом представлении. Я получил хороший контур и выделение, сделав несколько холстов обрезанными по размеру их содержимого поверх BasicTextField. Я хотел бы изменить цвета и такие из этих основных моментов, как они постукивали. это просто, проблема в том, что холст использует событие касания, и курсор никогда не помещается/не перемещается в то место, которое пользователь нажимает на холсте. Итак, есть ли способ передать событие касания другому составному? Я не мог найти способ, чтобы холст обнаруживал событие указателя, не потребляя его, иначе это было бы более плавно.

Вот что у меня сейчас происходит, немного похудел

 Box() {
 BasicTextField(
 // just somestyling modifiers
 )
 }
 
 Canvas(
 modifier = Modifier.pointerInput(Unit) {
               awaitPointerEventScope {
                  while (true) {
                     val event = awaitPointerEvent()

                     when (event.type) {
                        PointerEventType.Release -> {
                        // Do Something
                        }
                     }
                  }
               }
            }
 ) {
       // Draw the overlays
   }

Честно говоря, не совсем уверен, как это сделать, поэтому куча поисков в Google не вернула ничего, что я мог бы использовать, чтобы получить событие указателя на оба этих компонуемых объекта.

1
0
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Допустим, у меня есть экран с именем HomeScreen.

внутри HomeScreen у меня есть Card вот так:

    var currentPosition by remember {
        mutableStateOf(Offset(0F, 0F))
    }

    Card(
        modifier = Modifier.onPointerEvent(PointerEventType.Move) { 
            currentPosition = it.changes.first().position) 
    )

вы можете просто иметь доступ к currentPosition везде на экране

Другие вопросы по теме