加载列表之前确定ListView的高度

2024-05-08

是否可以在将 ListView 呈现在屏幕上之前确定其高度?如果我的 ListView 有 3 个项目,并且高度仅限于这 3 个项目(并且 ListView 不占据整个屏幕的高度),我可以在 Android 在屏幕上显示项目之前确定高度吗?


使用以下方法根据在场儿童获取和设置高度

 private static void setListViewHeightBasedOnChildren(ListView iListView) {
        ListAdapter listAdapter = iListView.getAdapter();
        if (listAdapter == null)
            return;

        int desiredWidth = View.MeasureSpec.makeMeasureSpec(iListView.getWidth(), View.MeasureSpec.UNSPECIFIED);
        int totalHeight = 0;
        View view = null;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            view = listAdapter.getView(i, view, iListView);
            if (i == 0)
                view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, RelativeLayout.LayoutParams.WRAP_CONTENT));

            view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
            totalHeight += view.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = iListView.getLayoutParams();
        params.height = totalHeight + (iListView.getDividerHeight() * (listAdapter.getCount() - 1));
        Log.d("TAG", "ListView Height --- "+params.height);
        iListView.setLayoutParams(params);
        iListView.requestLayout();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加载列表之前确定ListView的高度 的相关文章

随机推荐

  • Jquery 单击功能不适用于动态元素

    我在用 each使用每个数组对象创建按钮 我还尝试给每个按钮一个特定的 id 这样我就可以执行单击事件以进一步编码 但现在我不知道为什么所有按钮都不起作用 我错过了一些代码吗 var questlist startdate 2015 01
  • dmlc 在不使用 #if 的情况下抛出“未知标识符”

    为什么我在fail test1 模板中收到未知标识符错误 而在pass test1 中却没有 template pass test1 param len 10 if true saved int8 data len group pass i
  • 验证随时间变化的连续条件

    我想开发一个Python程序 从某个时刻开始 等待60秒再执行操作 该程序必须具有的另一个功能是 如果我更新初始时间 它必须开始检查条件 我想过用线程来做 但我不知道如何停止线程并以新的开始时间重新启动它 import thread imp
  • ExtJS 6 - 没有 CMD 的枢轴

    我想使用简单的测试 html 而不使用 cmd 来评估枢轴网格的功能 我已阅读这些链接中的信息 但仍然无法安装工作环境 https docs sencha com extjs 6 0 co ivot grid html https docs
  • 两列上的唯一索引是否意味着每一列上都有一个索引?

    我的架构中有一个表 它对两列有唯一约束 UNIQUE Column1 Column2 SQlite 文档告诉我 这在这些列上创建唯一索引 http www sqlite org lang createtable html 我的问题是 这是否
  • 部分模板专业化仅限于某些类型

    是否可以编写仅用于类类型的部分模板专业化 例如 从特定类继承或遵守可以通过类型特征表达的某些其他约束 即 像这样 class A class B public A template
  • 错误:Dojo 和 jQuery-UI 中的 multipleDefine 冲突

    我正在尝试创建一个可编辑的 SlickGrid 使用 jquery ui 并使用 Dojo 当我的页面包含 控制台显示 Error multipleDefine return mix new Error error src dojoLoad
  • 如何在iPhone模拟器中更改时间和时区?

    如何更改时间和时区iPhone http en wikipedia org wiki IPhone模拟器 我猜它使用您的系统时区 因此更改系统偏好设置中的 TZ 可能会成功
  • 如何让 NSURLRequest 获取 Twitter 请求令牌?

    我正在尝试使用以下代码从 Twitter 获取请求令牌 NSMutableURLRequest mURLRequest NSMutableURLRequest alloc initWithURL NSURL URLWithString ht
  • CSS 3 从底部渐变 n 像素 - Webkit/Safari

    有没有办法创建带有停止点的渐变n距离元素底部边缘的像素 例如 对于 Moz Firefox 它看起来像 moz linear gradient center bottom f00 2 d00 31px 还应该注意的是 该渐变有一个伴随渐变
  • 当工作站锁定然后解锁时,如何防止窗口大小调整?

    我们有一个在多显示器环境中运行的应用程序 用户通常将应用程序对话框分散到多个监视器上 如果用户锁定工作站 然后解锁它 我们的应用程序就会被告知调整大小 我们的用户发现这种行为令人沮丧 因为他们随后花了一些时间恢复以前的布局 我们还不确定是图
  • MySql:将多项选择数据存储在数据库中

    我的表单中有一个复选框列表 用户可以选择其中任何一个 也可以选择全部 认为用户选择他感兴趣的运动类型 我需要最好的数据库结构来存储这个用户选择 这样 将来我就可以获得所有这些数据 我想 我无法将每个 用户 ID 运动 选择作为新行存储在数据
  • 仅为一个通用命令处理程序注册 Autofac 装饰器

    我们有很多通用命令处理程序 它们由 Autofac 以开放通用方式注册 我们有几个装饰器来装饰所有的手柄 现在我需要仅为一个命令处理程序注册一个装饰器 而不影响所有其他命令处理程序 这是我的尝试 但我似乎没有正确注册 这是与我们的代码类似的
  • 将向量作为绑定传递给 for 宏时出现问题

    我有任意数量的列表 我想使用 for 宏来处理它们 我想创建一个传递向量作为绑定的函数 因为列表的数量各不相同 如果我对绑定进行硬编码 它会按我的预期工作 gt def list1 pink green gt def list2 dog c
  • 字段的特定 MessageBodyWriter

    假设我在 JAX RS 1 环境 带有 Jackson 提供程序的 RestEasy 2 中有一个数据类 如下所示 class Foo int id String name Bar bar with Bar being class Bar
  • 创建响应式 SVG 剪辑路径 / 使 SVG 响应式

    我正在尝试使用创建响应式 SVG 剪辑路径
  • HTML5 -

    Reading 一篇文章 http html5doctor com the article element on the
  • 如何在expressjs中调用另一个api?

    我有一个这样的API app get test req res gt console log this is test 和另一个API app get check req res gt I want to call test api wit
  • 如何显示图像的其他图像是无

    经过我认真思考后 我只是不知道我的代码有什么问题以及如何修改它 问题是这样的 当用户插入 url 时 如果该 url 是指向 youtube 的链接 则需要显示 youtube 缩略图 如果该网址不是 YouTube 视频的链接 则需要显示
  • 加载列表之前确定ListView的高度

    是否可以在将 ListView 呈现在屏幕上之前确定其高度 如果我的 ListView 有 3 个项目 并且高度仅限于这 3 个项目 并且 ListView 不占据整个屏幕的高度 我可以在 Android 在屏幕上显示项目之前确定高度吗 使