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