Я пытаюсь создать настраиваемую клавиатуру, которая позволяет мне начинать перетаскивать и получать события, когда палец перемещается по клавиатуре, сообщая мне, какая буква в настоящее время «зависла». Я попытался построить это, используя строки и столбцы GestureDetectors с дочерним элементом Text, но когда я перемещаю палец по клавиатуре, вызывается только самый первый GestureDetector ... похоже, что исходный GestureDetector удерживает операцию перетаскивания (как я провожу пальцем по клавиатуре) и никакой другой GestureDetector не активируется ... если я подниму палец и коснусь другой буквы, жест распознается. Я подумал о том, чтобы иметь родительский контейнер, который математически определяет на основе сетки, какая буква «зависла», но это кажется менее идеальным, чем хотелось бы.
Есть идеи?
GestureDetector(
onTapDown: (details) {
setState(() {
_selectedLetter = letter;
_showLetterPopup = true;
});
},
onTapUp: (details) {
setState(() {
_showLetterPopup = false;
});
},
onHorizontalDragStart: (details) {
setState(() {
_selectedLetter = letter;
_showLetterPopup = true;
});
},
onVerticalDragStart: (details) {
print(letter);
setState(() {
_selectedLetter = letter;
_showLetterPopup = true;
});
},
onHorizontalDragEnd: (details) {
print("End $letter");
setState(() {
_selectedLetter = letter;
_showLetterPopup = false;
});
},
onVerticalDragEnd: (details) {
print("End $letter");
setState(() {
_selectedLetter = letter;
_showLetterPopup = false;
});
},
child: ...
)