gpt4 book ai didi

android - 当android计算 View 的宽度和高度时

转载 作者:太空狗 更新时间:2023-10-29 16:41:25 25 4
gpt4 key购买 nike

我通过代码创建 View 层次结构,然后在 Activity 中使用我的 Root View 类参数执行 setContentView()

我需要在运行时知道一个 View 的宽度和高度,但如果我执行 getWidth()getHeight(),我得到 0。如果我等几秒钟我得到正确的宽度或高度。

我只想知道 android 在什么时候计算 View 的宽度/高度。我的代码并不出色

谢谢!

最佳答案

这是因为在 onCreate() 中尚未计算布局。因此,您需要添加一个 GlobalLayoutListener 以了解何时计算布局并将其放置在屏幕中。

final View view = findViewById(R.id.root);
ViewTreeObserver vto = view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewTreeObserver vto = view.getViewTreeObserver();
vto.removeGlobalOnLayoutListener(this);
}
});

其中 root 是根布局(即 LinearLayout、RelativeLayout)。使用@+id/root 分配您的根布局。

关于android - 当android计算 View 的宽度和高度时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085392/

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