这是我的代码。
@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,我怎样才能得到项目的宽度和高度?。
答案 0 :(得分:2)
如果将其置于getView()
方法内,则无法正确获取gridview单元格的高度和宽度。您试图在绘制之前测量视图。将其放在onMeasure()
或onSizeChanged()
内,或尝试实施onGlobalLayoutListener()
。你最好的选择就是这3个中的一个。这个答案在:Making GridView items square应该可以帮助你