假设我有一个简单的全屏ConstraintLayout,中间有一些EditTexts和TextViews。
是否有可能知道其中一种观点是否受到关注?我想要实现的基本上是为布局的所有子级提供一个onFocusChangeListener毯子。
我尝试为ConstraintLayout分配一个侦听器,但是只有在我点击布局本身(在那些EditTexts之外)时,它才会触发。
我可以为UI中的每个单独元素分配一个侦听器,但是如果我有数百个呢?
(我可以简单地遍历所有这些,但是请假设我不能)
答案 0 :(得分:0)
您可以使用ViewTreeObserver将全局侦听器附加到addOnGlobalFocusChangeListener。像这样:
view.getViewTreeObserver().addOnGlobalFocusChangeListener(
new OnGlobalFocusChangeListener() {
@Override
public void onGlobalFocusChanged(View prevFocus, View newFocus) {
// Do stuff here
}
}
);