首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示所有内容的ListView

显示所有内容的ListView
EN

Stack Overflow用户
提问于 2013-11-29 08:06:20
回答 2查看 139关注 0票数 0

我知道有很多关于这个话题的问答,但我仍然没有找到正确的答案。

我想让我的ListView (在ScrollView中)在屏幕的底部边缘“展开”,以显示所有的项目,而不需要滚动条,因此将ListView放入ScrollView中不是问题,我们将能够滚动整个活动。

将项目集合放在LinearLayout中并不是一个解决方案--它太慢了。绘制100个项目需要2-3秒,而ListView可以立即完成。

EN

回答 2

Stack Overflow用户

发布于 2013-11-29 08:12:27

你可以将ListViewlayout_height设置为wrap_content,但那样它就会像LinearLayout一样慢。ListView的全部意义在于它的内容是假的;它只创建在它的高度范围内可见的行。让它和它的内容一样高会失去它的优势。

我建议你重新考虑你想要做的事情。也许您可以将所有的小部件都放在ListView中,这样就不需要ScrollView了。

票数 0
EN

Stack Overflow用户

发布于 2013-11-29 10:14:04

您可以尝试使用以下代码片段在运行时设置Listview的高度

代码语言:javascript
复制
public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }

        int totalHeight = 0;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            if (listItem instanceof ViewGroup)
                listItem.setLayoutParams(new LayoutParams(
                        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            listItem.measure(0, 0);
            totalHeight += listItem.getMeasuredHeight();
        }

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

以及使用此功能的示例

代码语言:javascript
复制
listComment.setAdapter(new CommentAdapter(comment,
                        AppDetailActivity.this));
                listComment.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        Utils.setListViewHeightBasedOnChildren(listComment);

                    }
                }, 500);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20276485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档