今天遇到一个PullToRefreshListView的bug,就是ListView替换为PullToRefreshListView,setAdapter()后发现列表中没有数据显示,getView根本就不执行,从下午一直查到了现在,调试发现adapter里是有数据的,而listView的getView()方法没有被执行到。最后发现原因是在布局文件的<com.handmark.pulltorefresh.library.PullToRefreshListView>元素中指定了Android:visibility="gone"属性(在.Java文件里在setAdapter()之前先调用了listView.setVisibility(View.VISIBLE)),在布局文件里去掉此属性,改为在activity的onCreate()里执行listView.setVisibility(View.GONE)后恢复正常,没有深入调查这两种方式对PullToRefreshListView有什么区别,对标准ListView是没有区别的。
这真是PullToRefreshListView的一个大坑,记录在此。
<com.android.pc.ioc.pullrefresh.PullToRefreshListView
android:id="@+id/listview_search"
android:visibility="gone" <---- 写在这里有bug,要写在代码里
style="@style/listview_no_divder" />
<com.android.pc.ioc.pullrefresh.PullToRefreshListView
android:id="@+id/listview_content"
style="@style/listview_no_divder" />