ListView适应ScrollView的效果

来源:互联网 发布:苏30mkk和苏30mki知乎 编辑:程序博客网 时间:2024/05/17 02:37

listView与ScrollView嵌套使用,会出现listView最多仅显示一行的情况,改写listView的onMeasure方法即可解决。

public class FixedListView extends ListView {    private boolean fixed = true;    public FixedListView(Context context) {        super(context);    }    public FixedListView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public FixedListView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    private void isFixed(boolean fixed){        this.fixed = fixed;    }    /**     * 重写该方法,达到使ListView适应ScrollView的效果     * 可设置isFixed取消该效果     */    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = heightMeasureSpec;        if(fixed) {            expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        }        super.onMeasure(widthMeasureSpec, expandSpec);    }}
0 0
原创粉丝点击