天天看点

自定义GridView在展示Item时发生错位!

   主要通过自定义布局,将Item放在里面,就可以轻松解决问题!代码非常简单!

package com.example.two.defineview;

import android.content.Context;

import android.util.AttributeSet;

import android.widget.LinearLayout;

public class GridViewItemLayout extends LinearLayout {

    public GridViewItemLayout(Context context) {

        super(context);

    }

    public GridViewItemLayout(Context context, AttributeSet attrs) {

        super(context, attrs);

    }

    public GridViewItemLayout(Context context, AttributeSet attrs, int defStyleAttr) {

        super(context, attrs, defStyleAttr);

    }

//重写onMeasure()方法,注意下面参数!

    @Override

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

        setMeasuredDimension(getDefaultSize(0,widthMeasureSpec),getDefaultSize(0,heightMeasureSpec));

        int childWidthSize = getMeasuredWidth();

        int childHeightSize = getMeasuredHeight();

        widthMeasureSpec = heightMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize,MeasureSpec.EXACTLY);

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    }

}

继续阅读