我希望能够在添加项目之前确定列表视图的高度。列表视图定义为layout_height = 0dp和layout_weight = 5(或其他值,不是fill_parent或wrap_content)。当我在添加项目之前调用lv.getHeight时,高度返回0。我尝试在片段的onResume方法中使用lv.requestLayout()和lv.getMeasuredHeight。
到目前为止,我已经尝试过的事情:在onGlobalLayout处理程序中查询listview的高度。这样可以得到正确的高度,但是已经调用了listadapter的getView来填充列表。如果我等到onGlobalLayout之后才绑定适配器,那么当我使用adapter.notifyDataSetChanged()更新视图时,就会陷入onGlobalLayout处理程序调用的循环中。
从文档中,onResume似乎在布局完成后被调用,因此我希望listview.getHeight或listview.getMeasuredHeight此时将返回有效值,但我得到的只是0。
为什么我要这个。在添加它们之前,我需要知道多少个项目将适合列表视图。我想在列表顶部添加一个数字(count-1)“空白项目”,以便用户可以将列表中的顶部项目滚动到底部,以便在视觉上位于下面的另一个控件旁边列表。
最后找到了这个。View's getWidth() and getHeight() returns 0但这似乎与onResume的文档相反]