我用linearlayout
创建了layout:height="fill_parent"
我设置了3个按钮和一个TextView。我能够看到所有。但是当我想获得linearlayout的高度时。我在onCreate方法中使用了以下代码。 I am getting linear layout height as zero.
但我的线性布局高度是填充父级。而且我也能看到我添加的元素。为什么我没有得到线性布局的实际高度。
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main_linearlayout);
System.out.println("...Height..."+mainLayout.getMeasuredHeight());
由于 迪帕克
答案 0 :(得分:2)
参考这个问题
答案 1 :(得分:0)
当一个Activity获得焦点时,将要求它绘制其布局。 Android框架将处理绘制过程,但Activity必须提供其布局层次结构的根节点。 请参阅此链接view drawing 和layout padding and margis
答案 2 :(得分:0)
直到onCreate,OnResume,onStart视图尚未创建。 因此,如果您想获得视图的高度或宽度,请执行以下操作
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{
SearchResultActivity.this.sideIndexHeight = SearchResultActivity.this.sideIndex.getHeight();
ViewTreeObserver obs = sideIndex.getViewTreeObserver();
obs.removeGlobalOnLayoutListener(this);
}
});
请删除新的TreeObserver,否则会出现异常,TreeObserver不活着
覆盖onWindowFocusChanged方法,可以获得视图的高度或宽度。但是如果您的活动是作为子活动开始的,则不会调用onWindowFocusChanged方法。所以在那种情况下使用上面的那个。