onFocusChange包括孩子?

时间:2018-10-04 16:40:56

标签: android

假设我有一个简单的全屏ConstraintLayout,中间有一些EditTexts和TextViews。

是否有可能知道其中一种观点是否受到关注?我想要实现的基本上是为布局的所有子级提供一个onFocusChangeListener毯子。

我尝试为ConstraintLayout分配一个侦听器,但是只有在我点击布局本身(在那些EditTexts之外)时,它才会触发。

我可以为UI中的每个单独元素分配一个侦听器,但是如果我有数百个呢?

(我可以简单地遍历所有这些,但是请假设我不能)

1 个答案:

答案 0 :(得分:0)

您可以使用ViewTreeObserver将全局侦听器附加到addOnGlobalFocusChangeListener。像这样:

view.getViewTreeObserver().addOnGlobalFocusChangeListener(
    new OnGlobalFocusChangeListener() {
        @Override
        public void onGlobalFocusChanged(View prevFocus, View newFocus) {
            // Do stuff here
        }
    }
);