Следующая проблема кажется уникальной для 2.1, бывает и на эмуляторе и на нексусе. Тот же пример отлично работает на других платформах, которые я тестировал (1.5, 1.6 and 2.0 emulators
).
Я добавил созданный прослушиватель жестов, как описано в этом сообщении. Разница в том, что я добавил прослушиватель в TextView, в котором также зарегистрирован contextMenu, то есть что-то вроде следующего:
onCreate(...) {
...
// Layout contains a large TextView on which I want to add a context menu
tv = findViewById(R.id.text_view);
tv.registerForContextMenu(this);
// create the gestureListener according above mentioned post.
gestureListener = ...
// set the listener on the text-view
tv.setOnTouchListener(gestureListener);
...
}
При тестировании правильный жест распознается нормально, но через раз также вызывает открытие контекстного меню. Поскольку тот же пример работает на платформах, отличных от 2.1, у меня такое ощущение, что проблема не в моем коде...
Благодарен за любые предложения.
Обновление: кажется, что возвращаемое значение где-то перевернуто. Если я позволю onFling() вернуть «неправильное» значение, то есть true, когда событие пропущено, и false, когда оно было использовано, в версии 2.1 он будет работать корректно. Но, конечно, это не работает на других платформах. Похоже, пришло время для уродливого обходного пути...