直接嵌套后GridView会出现只显示一行的问题。
由于ListView和GridView都是可滑动的控件,所以需要自定义GridView,重写其onMeasure()方法。
import android.widget.GridView;
/**
*
* @author jc
*
*/
public class MyGridView extends GridView {
public MyGridView(android.content.Context context,
android.util.AttributeSet attrs) {
super(context, attrs);
}
/**
* 设置不滚动
*/
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
看到其他解决方案,提到重写onMeasure()方法后,还需要在XML设置GridView的高度为wrap_content,实际上不需要,设置为wrap_content或者match_parent均可。