Я создаю холст рисования с трепелтом, для которого я хочу использовать как масштабные (для увеличения, панорамирования и вращения), так и жестов PAN (для рисования пальцами), но трепетание не позволяет, поскольку масштаб является суперсеном сковороды Полем Есть ли какой -нибудь обходной путь для этого? Шкала экрана в течение короткого промежутка времени (скажем, 1 секунду) шкала берет на себя, иначе Пана начинает работать с 1 -м указателем, который касался экрана. Я использую пакет matrix_gesture_detector для выполнения масштабирования.class ScaleAndPanRecognizer extends OneSequenceGestureRecognizer {
var manager = GestureArenaManager();
final Function onPanDown;
final Function onPanUpdate;
final Function onPanEnd;
ScaleAndPanRecognizer({
@required this.onPanDown,
@required this.onPanUpdate,
@required this.onPanEnd,
});
int numPointers = 0;
int timeFrame = 1;
int pointer1;
int pointer2;
var time1;
var time2;
var position1;
@override
void addPointer(PointerDownEvent event) {
print(numPointers);
if (numPointers == 0) {
pointer1 = event.pointer;
print(pointer1);
position1 = event.localPosition;
manager.hold(pointer1); //hold the assignment for this pointer for now
startTrackingPointer(pointer1);
numPointers += 1;
time1 = DateTime.now();
} else if (numPointers == 1) {
pointer2 = event.pointer;
print(pointer2);
resolvePointer(pointer2, GestureDisposition.rejected);
time2 = DateTime.now();
var diff = time2.difference(time1);
print(diff);
if (diff 'only one pointer recognizer';
@override
void didStopTrackingLastPointer(int pointer) {}
}
Подробнее здесь: https://stackoverflow.com/questions/614 ... s-together
Flutter: Использование жестов как сковороды, так и масштабирования вместе? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение