gpt4 book ai didi

android - subview 的坐标什么时候生效?

转载 作者:搜寻专家 更新时间:2023-11-01 07:51:14 25 4
gpt4 key购买 nike

我有一个包含很多 subview 的 RelativeLayout,我想在 Activity 开始后计算其中一个(相对于父容器)的位置。

我的问题是,当我用 View 填充布局时,我无法获得任何坐标,这发生在我的 Activity 的 onStart 方法中。特别是,我尝试了 similar question 中提到的所有食谱。但没有成功;所有这些方法都只返回零。

然而,如果我稍后重复计算(即在按钮处理程序中),它们会计算出正确的位置。

所以我的假设是 onStart 不是计算位置的好地方,因为还没有准备好。但是哪个地方会更好呢?根据the docs , onStart 是向用户显示 Activity 之前的最后一次调用。我尝试将我的数学转移到 onResume 中,但这没有帮助。

最佳答案

您可以通过这种方式确保 View 具有有效坐标:

parentView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// really important! elsewhere this method will be called continously
parentView.getViewTreeObserver().removeOnGlobalLayoutListener(this);

// do your job
}
});

关于android - subview 的坐标什么时候生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34749351/

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