你的位置:首页 > 操作系统

[操作系统]GridView嵌套在ScrollView里只有一行的问题


遇到这个问题

网上找到的解决办法:

方法一:就是上面说的通过计算出来ListView或者GridView中的子列高度和 进行显示:
public void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}

int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}

ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
((MarginLayoutParams)params).setMargins(15, 15, 15, 15);
listView.setLayoutParams(params);

}


方法二:重写GridView和ListView的onMeasure方法,直接给它一个足够大的高度:
重写ListView:
public class MyListView extends ListView {

public MyListView(Context context) {
// TODO Auto-generated method stub
super(context);
}

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

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

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

重写GridView:
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);
}
}
<com.xxx.MyGridView
android:id="@+id/mygridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="4"
android:stretchMode="columnWidth"
android:verticalSpacing="6dp" />

 




海岛蜜月旅游行程参考海岛特价旅游多少钱到海岛游费用报价大全海岛自助游攻略2015怎样去海岛旅游大研安缦 避世圣地平和如斯[二] 分界洲岛至三亚往返专线班车变更信息、分界洲岛旅游区旅游班线车交接车次表 春节去哪里?寻访杭州周边最有年味的古镇 南宁大明山怎么去?南宁武鸣大明山开车需要多久? 首届中国(海盐)旅友大会旅友征集中(组图) 番禺长隆万圣节门票价格?广州长隆万圣节是什么时候? 浙江鲜为人知的旅行地 你知道几个(组图) 长隆万圣节夜场门票价格?广州长隆万圣节刺激吗? 深圳欢乐海岸麦鲁小镇怎么玩?欢乐海岸麦鲁小镇游玩项目有哪些? 呀诺达教师节活动?三亚呀诺达教师有什么优惠? 2015呀诺达中秋节活动?海南呀诺达中秋节门票多少钱? 欢乐海岸麦鲁小城团购票价?深圳欢乐海岸麦鲁小城好玩不? 大观园昆山峡景区漂流价格?惠州大观园昆山峡景区还能漂流吗? 长隆水上乐园日场票多少钱?广州长隆水上乐园日场门票价格? 惠东南山漂流全长多少?南山漂流漂程? 义江缘附近有什么好玩的?桂林义江缘旅游攻略? Q65110A7883 Datasheet Q65110A7883 Datasheet Q65110A7884 Datasheet Q65110A7884 Datasheet Q65110A7885 Datasheet Q65110A7885 Datasheet 龙庆峡冰灯门票团购 龙庆峡冰灯门票团购 龙庆峡冰灯门票团购 广州灯光节2013 广州灯光节2013 广州灯光节2013 厦门园博园灯会 厦门园博园灯会 厦门园博园灯会