小编Pra*_*jje的帖子

为什么我们使用ViewTreeObserver#addOnGlobalLayoutListener()

我们为什么使用ViewTreeObserver,任何人都可以解释一下?

在下面的代码creditsViewTextView对象。通过整个代码,我了解到“这是根据条件隐藏一些文本”,但是唯一的原因就是我们为什么要使用它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);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-view android-viewtreeobserver

4
推荐指数
2
解决办法
4946
查看次数