本文转载,来自http://www.cnblogs.com/linlf03/archive/2013/06/06/3120408.html;
使用ListView在setAdapter()后,对ListView的childView做一些操作。但是每次要取得childCount总是0。
原來setAdapter是非同步(asynchronous)。
只要在setAdapter()之后,加入post函式去更新ListView的ChildView即可。
lv = (ListView)findViewById(R.id.list);
lv.setAdapter(adapter);
lv.post(
new
Runnable(){
public
void
run(){
// fileList为与adapter做连结的list总数
if
(fileList.size()==lv.getChildCount()){
//对ListView中的ChildView进行操作。。。
}
}
});
本段也是转载:
android listView.getCount 与 listView.getChildCount 区别ListView.getCount()(实际上是 AdapterView.getCount()) 返回的是其 Adapter.getCount() 返回的值。 也就是“所包含的 Item 总个数”。 ListView.getChildCount()(ViewGroup.getChildCount) 返回的是显示层面上的“所包含的子 View 个数”。 当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount() 其中 getChildCount() 返回的是当前可见的 Item 个数 |
本文探讨了在使用ListView时,对childView的操作在setAdapter后可能遇到的延迟问题,并提供了解决方案:通过调用post方法更新ListView的ChildView。同时解释了ListView的getCount与getChildCount的区别,帮助开发者正确理解两者之间的关系。

3876

被折叠的 条评论
为什么被折叠?



