java - 在代码中初始化的 TextView 上的 getHeight()

标签 java android android-widget textview

我已经在代码中初始化了 TextView(即,没有从布局中初始化它)

TextView   v   =    new TextView(getApplicationContext());

然后我设置文本

v.setText("Foo");

然后我尝试获取这个 TextView 的高度

int i = v.getHeight();

这给出了 0。

请指教

最佳答案

您的 TextView 可能尚未测量。 使用 ViewTreeObserver,您可以在渲染 TextView 时收到通知,然后您可以获得它的高度:

ViewTreeObserver vto = v.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

@Override
public void onGlobalLayout() {
if (v != null && getActivity() != null) {
    ViewTreeObserver obs = v.getViewTreeObserver();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        obs.removeOnGlobalLayoutListener(this);
    } else {
        obs.removeGlobalOnLayoutListener(this);
    }
    int i = v.getHeight();

    }
 }
});

关于java - 在代码中初始化的 TextView 上的 getHeight(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951028/

相关文章:

android - 要设置哪个xml属性来禁用android seekbar

java - "_Problem Loading Widget"消息

java - 为什么 new Something() 和 Something.class.newinstance() 之间没有明显的区别?

java - 为什么firebase的addValueEventListener的onDataChange方法中的ArrayList不为null,但外面却为null?

Android 操作栏方向更改怪癖 - 调用 tabSeleceted 和 ItemSelected 方法

android-widget - 如何将 Google Analytics 添加到 Android 应用程序小部件?

java - 计算凹二维多边形相对于其原点的惯性矩

java - 将gradle项目导入Spring Tool Suite会导致依赖项错误

Java:如何在编译时找到方法的调用者?

android - Android 的新 CallLog.Calls.NUMBER_PRESENTATION 字段有什么用?