假设我有一个自定义的ViewGroup,它具有可聚焦性,并且有一些子视图也具有可聚焦性(Android机顶盒的自定义垂直菜单,应该对远程控制器做出反应)。
当自定义ViewGroup获得焦点时,我需要将焦点传递给某些子视图。
我将descendantFocusability设置为beforeDescendants,并将OnFocusChangeListener设置为自定义ViewGroup,但OnFocusChangeListener.onFocusChanged()从未被调用。看起来beforeDescendants不像我预期的那样工作。实际上,将beforeDescendants设置与设置afterDescendants相同-焦点由最近的子视图接管,自定义ViewGroup没有机会决定哪个子视图应该获得焦点。
我该如何实现所需的行为?在ViewGroups中处理焦点的最佳实践是什么?
当自定义ViewGroup获得焦点时,我需要将焦点传递给某些子视图。
我将descendantFocusability设置为beforeDescendants,并将OnFocusChangeListener设置为自定义ViewGroup,但OnFocusChangeListener.onFocusChanged()从未被调用。看起来beforeDescendants不像我预期的那样工作。实际上,将beforeDescendants设置与设置afterDescendants相同-焦点由最近的子视图接管,自定义ViewGroup没有机会决定哪个子视图应该获得焦点。
我该如何实现所需的行为?在ViewGroups中处理焦点的最佳实践是什么?