Измените реакцию SlidingDrawer на трекбол или курсор

(Обратите внимание, что поведение, описанное в этом вопросе, появилось только из-за чего-то еще, казалось бы, не связанного с нами. См. принятый ответ .)

У нас есть действие Android с GridView и SlidingDrawer внутри RelativeLayout . То, как это действие реагирует на трекбол (или клавиши курсора), довольно странно. Фокус будет перемещаться между элементами в GridView, но всякий раз, когда курсор перемещается в направлении «за пределы» GridView. (например, вверх, когда вверху, влево, когда уже находится в крайнем левом положении) выдвижной ящик открывается или закрывается. Примечательно, что фокус остается на том же элементе в GridView - он не перемещается в выдвижной ящик.

С трекболом это особенно ужасно, поскольку вращение трекбола мимо вашего реального пункта назначения приведет к тому, что выдвижной ящик будет постоянно открываться и закрываться.

Мы определили, что можем полностью отключить трекбол, переопределив onTrackballEvent () . Мы бы предпочли, чтобы трекбол и курсор нормально работали в GridView, но не заставляли выдвижной ящик открываться или закрываться. В принципе, мы также хотели бы, чтобы трекбол фокусировался на различном содержимом выдвижного ящика, когда он открыт.

Как?

6
задан Community 23 May 2017 в 12:27
поделиться