我有一个 ViewGroup
,它可以有很多 LinearLayout
。并且每个 LinearLayout
可以有许多嵌套的 subview 。我想要的是,如果 LinearLayout
中的任何 View (甚至嵌套很深)获得焦点,它应该调用其主要父级 LinearLayout
的自定义方法。
我想做的最后一件事是,在 LinearLayout
的每个深层嵌套 subview 上设置 OnFocusChangeListener
,该监听器将调用其父级的自定义方法。但这真的很糟糕。
是否有任何方法可以覆盖父级 LinearLayout
每次其任何嵌套 subview 的焦点发生变化时都会被调用?
最佳答案
您可以使用 contentView.getViewTreeObserver().addOnGlobalFocusChangeListener()
或覆盖根 ViewGroup 的 ViewGroup.requestChildFocus()
(requestChildFocus()
沿着 View 父链传递)。
关于android - subview 焦点更改android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185136/