我们为什么要使用ViewTreeObserver
,请任何人解释一下吗?
在下面的代码creditsView
中是TextView
对象。通过整个代码,我了解到“这是根据条件隐藏一些文本”,但唯一的问题是我们为什么要使用ViewTreeObserver
?
mainLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = mainLayout.getRootView().getHeight() - mainLayout.getHeight();
if (heightDiff > 100) {
Utils.appLogger("MyActivity", "keyboard opened");
creditsView.setVisibility(View.GONE);
}
if (heightDiff < 100) {
Utils.appLogger("MyActivity", "keyboard closed");
creditsView.setVisibility(View.VISIBLE);
}
}
});