package cn.net.caoyao.cpzshandset.ui.weight;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

public class MyListView extends ListView {
	public MyListView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	public MyListView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub
	}

	public MyListView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	/*
	 * 这个大小的模式，有点难以理解。在系统中组件的大小模式有三种：
	 * 1.精确模式（MeasureSpec.EXACTLY）在这种模式下，尺寸的值是多少，那么这个组件的
	 * 
	 * 长或宽就是多少。 2.最大模式（MeasureSpec.AT_MOST）这个也就是父组件，能够给出的最大的空间，当前
	 * 
	 * 组件的长或宽最大只能为这么大，当然也可以比这个小。
	 * 3.未指定模式（MeasureSpec.UNSPECIFIED）这个就是说，当前组件，可以随便用空间，
	 * 
	 * 不受限制。
	 */

	/*
	 * 一个int类型我们知道有32位。而模式有三种，要表示三种状 态，至少得2位二进制
	 * 
	 * 位。于是系统采用了最高的2位表示模式。如图：
	 * 
	 * 最高两位是00的时候表示"未指定模式"。即MeasureSpec.UNSPECIFIED
	 * 最高两位是01的时候表示"'精确模式"。即MeasureSpec.EXACTLY
	 * 最高两位是11的时候表示"最大模式"。即MeasureSpec.AT_MOST
	 */

	// 设置不滚动
	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		// TODO Auto-generated method stub
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
		// int expandSpec = MeasureSpec.makeMeasureSpec(MeasureSpec.AT_MOST,
		// Integer.MAX_VALUE >> 2);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}

}
