gpt4 book ai didi

android - onGlobalLayoutListener 与 postRunnable

转载 作者:行者123 更新时间:2023-11-29 19:57:39 28 4
gpt4 key购买 nike

我正在尝试在 Activity 加载完成后计算 View 的 x,y 位置。我所做的是 view.postDelayed(runnable, 2000) 工作正常。 code reviewer 对此不满意并建议使用 OnGlobalLayoutListener 来了解 Activity 加载的完成情况。不知何故,我不喜欢 OnGlobalLayoutListener,因为它与我的解决方案不需要的整个 View 树相关联。我试图了解这些方法的优缺点。谢谢!

最佳答案

如果您只想读取 View 的 xy 坐标,我建议使用 view.post(Runnable)没有延迟(除非有充分的理由包括延迟)。这会将 Runnable 添加到 UI 线程中的消息队列中。 Runnable 将等待执行,直到您的 View 膨胀并附加到窗口。由于 View 位置属性值取决于 View 的布局上下文,因此发布 Runnable 将为您提供所需的时间。

正如您在问题描述中提到的,OnGlobalLayoutListener 将应用于整个 View 的布局,如类名所示。仅当您关心 View 树中任何或所有 View 的布局状态或可见性时,才应考虑 OnGlobalLayoutListener。 IE。任何导致 View 树重新布局的东西。

关于android - onGlobalLayoutListener 与 postRunnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586146/

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