gpt4 book ai didi

android - 如何获取或计算膨胀 View 的宽度/高度

转载 作者:IT老高 更新时间:2023-10-28 23:10:44 25 4
gpt4 key购买 nike

如果父 View 是 PopupWindow 而不是 ViewGroup,我如何计算膨胀 View 的宽度和高度?我不能使用 LayoutInflator.inflate(int resId, ViewGroup parent, attachToRoot boolean) 因为 PopupWindow 不是 ViewGroup,所以我使用 LayoutInflator.inflate(int resId) 代替,但是之后我 getWidth() 和 getHeight() 返回零:(

我需要调整 PopupWindow 的大小以适应 View ,但在 View 有父 View 之前不能这样做。我有先有鸡还是先有蛋的问题吗?

顺便说一句,View 是 RelativeView 的子类,因此手动计算它基本上是不可能的。

提前致谢,巴里

最佳答案

实际上 popupWindow 支持“包装内容”常量,因此如果您希望弹出窗口与您的 View 完全相同 - 使用这个:

popup = new PopupWindow(context);
popup.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
popup.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);

--其他选项--

getWidth()getHeight() 返回零,因为 View 只有在屏幕上绘制后才具有大小。您可以尝试从膨胀 View 的 LayoutParams 中获取值。

如果有 fill_parent 值 - 你处于鸡蛋鸡的情况。

如果 pxdp 中有值,您可以手动计算大小(以像素为单位):

Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpSize, context.getResources().getDisplayMetrics()));

如果有 wrap_content 值 - 你可以使用 view.measure() 方法 - 所有的 child 和 View 本身都会被测量,你可以得到 view .getMeasuredHeight()view.getMeasuredWidth().

关于android - 如何获取或计算膨胀 View 的宽度/高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6430270/

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