Android学习—自定义组件

复制代码
public class MyListView extends ListView{
 public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

        int expandSpec = MeasureSpec.makeMeasureSpec(
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
复制代码
复制代码
public class MyGridView extends GridView{

 public MyGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyGridView(Context context) {
        super(context);
    }

    public MyGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

        int expandSpec = MeasureSpec.makeMeasureSpec(
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
复制代码

 

PS:ScrollView 嵌套 ListView 只显示了一行,有一种动态重设ListView高度的方法,但还会遮住一部分,在这里采用一个自定义的组件继承于原来的类,重写onMeasure方法重绘组件,然后替换布局文件中ListView布局即可。


以上转自:http://www.cnblogs.com/shuaiwen/archive/2013/07/26/3217555.html


你可能感兴趣的:(Android学习—自定义组件)