当ExpandableListView获得焦点时,处理子选择的正确方法是什么?

时间:2011-08-19 01:59:30

标签: android focus selection expandablelistview android-3.0-honeycomb

我有一个ExpandableListView,然后有一些其他控件可以将焦点放在右边。像这样的东西。注意:选择了Child2。

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

使用d-pad,如果我按向右键,焦点将转到另一个视图。此时,如果我在d-pad上按左键,焦点将返回到我的ExpandableListView,但是Child3被选中而不是Child2(因为它位于中心)。

一般情况下,当焦点离开然后返回ExpandableListView时,如何确保先前选定的子节点仍然是选定的子节点?关于解决方案的任何想法?我尝试缓存当前选择然后调用setChildSelected(),但由于某种原因选择不会发生。

1 个答案:

答案 0 :(得分:0)

好吧,我通过在焦点丢失时缓存当前组和子进程来解决它,然后在listview重新获得焦点时显式重新设置组/子组。我还必须禁用listview并在各个地方重新启用它。这是一个黑客,但它的工作原理。