android - 如何在添加项目之前确定列表视图的高度
问题描述
我希望能够在添加项目之前确定列表视图的高度。列表视图定义为 layout_height=0dp 和 layout_weight=5(或其他值,它不是 fill_parent 或 wrap_content)。当我在添加项目之前调用 lv.getHeight 时,高度返回 0。我尝试在片段的 onResume 方法中使用 lv.requestLayout() 和 lv.getMeasuredHeight。
到目前为止我尝试过的事情:在 onGlobalLayout 处理程序中查询列表视图高度。这让我得到了正确的高度,但是已经调用了 listadapter 的 getView 来填充列表。如果我等到 onGlobalLayout 之后才绑定适配器,那么当我使用 adapter.notifyDataSetChanged() 更新视图时,我会陷入 onGlobalLayout 处理程序调用的循环中。
从文档中,onResume 似乎在布局完成后被调用,所以我希望 listview.getHeight 或 listview.getMeasuredHeight 此时会返回有效值,但我得到的只是 0。
为什么我想要这个。在添加它们之前,我需要知道列表视图中可以容纳多少项目。我想在列表顶部添加一个数字(count-1)的“空白项目”,以便用户可以将列表中的顶部项目滚动到底部,以便它在视觉上位于下面的另一个控件旁边名单。
解决方案
终于找到了这个。
View 的 getWidth() 和 getHeight() 返回 0
但它似乎与 onResume 的文档背道而驰
推荐阅读
- python - Python3函数将列表映射到字典
- typescript - ionic 3 movefile函数的问题
- scala - sbt,编译编译桥
- javascript - Calculator Project for Uni - JavaScript Code not working
- navbar - Bootstrap 4 透明导航栏
- python - python ffmpeg子进程在heroku上不起作用
- python - 如何使用字典计算字符串中每个单词的字母?(Python)
- firebase - 使用唯一 ID 时,firebase 数据库检查数据是否在插入之前存在
- c# - 保持 TcpListerner 处于空闲状态 C#
- python - 在模式匹配后返回一个巨大文件的确切行,而不在 Python3 中使用 FOR