如何在GridView中获取项目的宽度和高度

时间:2015-06-15 23:53:09

标签: android 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,我怎样才能得到项目的宽度和高度?。

1 个答案:

答案 0 :(得分:2)

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