3

У меня есть ExpandableListView, а затем какой-то другой элемент управления, который может иметь фокус справа от него. Что-то вроде этого. Примечание: выбрано Child2.Каков правильный способ обработки дочернего набора, когда объект ExpandableListView получает фокус?

Group1  
    Child1 +-----------------------+ 
*Child2* |      | 
    Child3 | Other focusable View. | 
    Child4 |      | 
    Child5 +-----------------------+ 

Использование d-pad, если я нажимаю вправо, фокус переходит на другой вид. В этот момент, если я нажму налево на d-pad, фокус вернется к моему ExpandableListView, но Child3 будет выбран вместо Child2 (потому что он находится в центре).

В общем, как я могу гарантировать, что ранее выбранный ребенок остается выбранным ребенком, когда фокус уходит, а затем возвращается к моему ExpandableListView? Любые идеи о работе? Я попытался кэшировать текущий выбор, а затем вызвал setChildSelected(), но по какой-то причине выбор не происходит.

+0

Как вы обрабатываете положение фокусировки в расширяемом списке? Я использую onseemselectedlistener, но позиция меняется, всякий раз, когда открываются разные группы. – Kyk

ответ

0

Ну, я решил это, кэшируя текущую группу и ребенка, когда фокус потерян, а затем явно перенастроит группу/дочерний элемент, когда список просматривает фокус. Мне также пришлось отключить список и снова включить его в разных местах. Это взлом, но он работает.