2010-05-13 48 views
3

我做了一个自定义视图。如果我将视图添加到布局XML文件,并将高度设置为fill_parent“specSize”返回0.为什么?Android:onMeasure问题()

代码:

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     int measuredHeight = 90; 

     int specMode = MeasureSpec.getMode(heightMeasureSpec); 
     int specSize = MeasureSpec.getSize(MeasureSpec.getMode(heightMeasureSpec)); 

     if(specMode != MeasureSpec.UNSPECIFIED){ 
     measuredHeight = specSize; 
     } 
     setMeasuredDimension(60, measuredHeight); 
} 

有谁知道我怎样才能得到的fill_parent的高度?

回答

3

你不需要在调用'getSize'时调用MeasureSpec.getMode测量规范的全部概念是结合测量的方式(可以了解Spec)和相关大小。为MeasureSpec.makeMeasureSpec method.So正确的代码看起来就像见文档:

int widthSpec = MeasureSpec.getMode(widthMeasureSpec); 
int width = MeasureSpec.getSize(widthMeasureSpec); 
0

正确的代码将是:

int specMode = MeasureSpec.getMode(heightMeasureSpec);  ----This was already correct 
int specSize = MeasureSpec.getSize(heightMeasureSpec);  ----This is corrected.