gpt4 book ai didi

android - ViewTreeObserver removeOnGlobalLayoutListener 不起作用

转载 作者:行者123 更新时间:2023-11-30 02:03:01 26 4
gpt4 key购买 nike

我在 onCreate 中将一个 ViewTreeObserver 添加到我的 fragment 之一:

 view.getViewTreeObserver().addOnGlobalLayoutListener(viewTreeObserver);

我只需要第一次调用就可以获取屏幕尺寸。当第一次调用监听器时,我想移除监听器,但 removeOnGlobalLayoutListener 不起作用。每次我更改 fragment 时,都会从监听器中抛出 NullPointerException。

    OnGlobalLayoutListener viewTreeObserver = new ViewTreeObserver.OnGlobalLayoutListener()
{
@SuppressWarnings("deprecation") @SuppressLint("NewApi") @Override
public void onGlobalLayout()
{
// Only the first call was needed
if(android.os.Build.VERSION.SDK_INT >= 16)
view.getViewTreeObserver().removeOnGlobalLayoutListener(viewTreeObserver);
else
view.getViewTreeObserver().removeGlobalOnLayoutListener(viewTreeObserver);
}
};

最佳答案

您应该通过以下方式删除监听器:

view.getViewTreeObserver().removeOnGlobalLayoutListener(this);

view.getViewTreeObserver().removeGlobalOnLayoutListener(this);

关于android - ViewTreeObserver removeOnGlobalLayoutListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31187631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com