Жест броска Android 2.1 захвачен в текстовом представлении, но все еще открывается контекстное меню

Следующая проблема кажется уникальной для 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 он будет работать корректно. Но, конечно, это не работает на других платформах. Похоже, пришло время для уродливого обходного пути...


person hermo    schedule 09.05.2010    source источник
comment
Я только что столкнулся с этой проблемой жестов и контекстного меню. вы нашли какое-нибудь решение? и вы сообщаете об этом code.google.com/p/android/issues /detail?id=8497?   -  person SteelBytes    schedule 21.12.2010


Ответы (1)


Спасибо за ссылку steelbytes.com. Я реализовал решение «отмена и возврат-ложь» в последнем комментарии (27 декабря 2010 г.), но только для моего события onFling, и, похоже, оно работает как на устройствах 1.6, так и на устройствах 2.x.

person ProjectJourneyman    schedule 18.02.2011