我有一个ViewGroup
可以有很多LinearLayout
个。每个LinearLayout
都可以有许多嵌套的子视图。我想要的是,如果LinearLayout
内的任何视图(甚至是深层嵌套)获得焦点,它应该调用其主要父LinearLayout
的自定义方法。
我要做的最后一件事是,在OnFocusChangeListener
的每个深层嵌套子视图上设置LinearLayout
,该侦听器将调用其父级的自定义方法。但这是非常糟糕的方式。
我是否可以覆盖父{4}}的任何方法,每次嵌套子视图的焦点发生变化时都会调用它?
答案 0 :(得分:6)
您可以使用{View}组的contentView.getViewTreeObserver().addOnGlobalFocusChangeListener()
或覆盖ViewGroup.requestChildFocus()
(requestChildFocus()
沿着视图父链传递。)