2015-06-15 43 views
0

这是我的代码。如何获取GridView中项目的宽度和高度

@Override 
public View getView(final int position, View view, ViewGroup viewGroup) { 
    View v = view; 
    final ViewHolder viewHolder; 
    final String typeName; 

if (v == null) { 
    v = inflater.inflate(R.layout.gridview_item, viewGroup, false); 
    viewHolder = new ViewHolder(); 

    viewHolder.mView = v.findViewById(R.id.parentLayout); 
    viewHolder.picture = (ImageView) v.findViewById(R.id.picture); 
    viewHolder.name = (TextView) v.findViewById(R.id.text); 

    v.setTag(viewHolder); 

} else { 
    viewHolder = (ViewHolder) v.getTag(); 
} 

item = (ResourcesDrawables) getItem(position); 

    int width = viewHolder.mView.getWidth(); 
    int height = viewHolder.mView.getHeight(); 

我试着得到宽度/高度,但它返回0,我怎样才能得到该项目的宽度和高度?

回答

2

如果将其放入getView()方法中,则无法正确获取gridview单元格的高度和宽度。您正在尝试在其绘制之前测量视图。将其放入onMeasure()onSizeChanged()或尝试执行onGlobalLayoutListener()。你最好的选择就是其中之一。这个答案在这里:Making GridView items square应该可以帮到你