У меня есть два прямоугольника, каждый с TapHandler
. Прямоугольник A является родителем прямоугольника B
Как мне настроить A и B, чтобы при щелчке B EventPoint
не передавался обработчику onSingleTapped
A?
В документах EventPoint предлагается установить для его свойства accepted
значение true:
Принято значение true предотвращает распространение события на Items ниже Item PointerHandler.
Однако в то же время в документации указано, что accepted
является свойством только для чтения, что не имеет особого смысла (я предполагаю, что документация устарела или просто неверна).
TestCode:
Rectangle {
id: a
width: 200
height: 200
color: "yellow"
TapHandler {
onSingleTapped: console.log("A tapped")
}
Rectangle {
id: b
color: "blue"
width: 100
height: 100
TapHandler {
onSingleTapped: function(eventPoint) {
// Stop propagation.
eventPoint.accepted = true
console.log("B tapped")
}
}
}
}
ОБНОВЛЕНИЕ: установка gesturePolicy
of B на TapHandler.ReleaseWithinBounds
предотвращает получение события A. Не уверен, действительно ли это лучшее решение