android - listview重新计算高度问题
怪我咯
怪我咯 2017-04-17 15:47:34
[Android讨论组]

动态加载3条数据,listview出现这种情况。我重新计算的代码如下:

public static void resetListViewHeight(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); //计算子项view的宽高
        totalHeight += listItem.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getpiderHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
}

listview的子项布局用的是linearlayout。请问大神们是怎么回事?
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
PHP中文网

将xml中的ListView改用下面的ListViewForScrollView试一下。

//ScrollView中嵌入ListView,让ListView全显示出来 
public class ListViewForScrollView extends ListView{

    public ListViewForScrollView(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);
    }
}  
PHP中文网

ListView 灵活性太高了,你这个效果完全可以使用原生的ListView来实现。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号