gpt4 book ai didi

Android TextView 的高度和宽度为 0

转载 作者:IT老高 更新时间:2023-10-28 21:53:24 27 4
gpt4 key购买 nike

我有一个小项目,我想多次重用某个 UI 组件,所以我通过扩展 ViewGroup 创建了一个小部件。在那个 ViewGroup 中,我膨胀了一个在 LinearLayout 中包含 TextView 的 View ,并通过 addView 将该膨胀 View 添加到 ViewGroup 中。

当我通过 Hierarchy Viewer 查看时,外部 LinearLayout 会完美地扩展自身,但内部 TextView 的 getHeight() = 0 和 getWith() = 0。奇怪的是 layout_height 和 layout_width 是我在 xml 中给它们的值。

我这里没有代码,但它看起来像这样:

xml:

<LinearLayout  
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
android:text="random text.."
android:layout_with="200px"
android:layout_height="50px" />
</LinearLayout>

Java:

class MyWidget extends ViewGroup {
...

//In constructor
myView = View.inflate(context, R.layout.xml, null);
addView(myView);

//In layout
myView.layout(l, t, r, b);

我已尝试为我的 TextView fill_parent 提供大小值,但没有帮助。

最佳答案

Remember:getHeight() and getWidth()return 0 if components are not drawn yet.


View 在它被绘制之前找到它的宽度和高度:

  1. 第一次调用measure

    view.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED)
  2. 现在您可以使用 getMeasuredWidth 获取宽度,使用 getMeasuredHeight

    获取高度
    int width = view.getMeasuredWidth();
    int height = view.getMeasuredHeight();

我在这里发布了更多想法:How to get width/height of a View

关于Android TextView 的高度和宽度为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820287/

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