最近在Activity中需要在一个Activity中使用多个ListView,而且统一使用最外层的滚动条,但是遇到一个问题,每个listView只会显示一行甚至没有,如下图:
然后查找资料之后才发现应该对listview重写onMeasure()方法,如下:
package com.example.lenovo.agricultureapp.DIY_Class;
/**
* Created by lenovo on 2016/10/26.
*/
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
public class ListViewForScrollView extends ListView {
public ListViewForScrollView(Context context) {
super(context);
}
public ListViewForScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ListViewForScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
@Override
/**
* 重写该方法,达到使ListView适应ScrollView的效果
*/
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
大功告成: