我已经在代码中初始化了 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/