自定义listview适配器getView方法多次被调用,并且没有一致的顺序我有一个自定义列表适配器:class ResultsListAdapter extends ArrayAdapter<RecordItem> {在重写的‘getView’方法中,我执行一个打印来检查什么位置以及它是否是一个转换视图: @Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("getView " + position + " " + convertView);它的输出(当第一次显示列表时,还没有用户输入)04-11 16:24:05.860: INFO/System.out(681): getView 0 null 04-11 16:24:29.020: INFO/System.out(681):
getView 1 android.widget.RelativeLayout@43d415d8 04-11 16:25:48.070: INFO/System.out(681):
getView 2 android.widget.RelativeLayout@43d415d8 04-11 16:25:49.110: INFO/System.out(681):
getView 3 android.widget.RelativeLayout@43d415d8 04-11 16:25:49.710: INFO/System.out(681):
getView 0 android.widget.RelativeLayout@43d415d8 04-11 16:25:50.251: INFO/System.out(681):
getView 1 null 04-11 16:26:01.300: INFO/System.out(681): getView 2 null 04-11 16:26:02.020: INFO/System.out(681):
getView 3 null 04-11 16:28:28.091: INFO/System.out(681): getView 0 null 04-11 16:37:46.180: INFO/System.out(681):
getView 1 android.widget.RelativeLayout@43cff8f0 04-11 16:37:47.091: INFO/System.out(681):
getView 2 android.widget.RelativeLayout@43cff8f0 04-11 16:37:47.730: INFO/System.out(681):
getView 3 android.widget.RelativeLayout@43cff8f0AFAIK虽然找不到明确的声明,但getView()只对可见的行调用。由于我的应用程序从四行可见开始,至少从0-3循环的位置号是有意义的。但剩下的都是一团糟:为什么每一行都要调用getview三次?当我还没有滚动的时候,这些转换视图是从哪里来的呢?我做了一些研究,但没有得到一个好的答案,我确实注意到人们把这个问题和布局问题联系在一起。因此,以防万一,下面是包含列表的布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/pageDetails"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ListView android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
3 回答

慕雪6442864
TA贡献1812条经验 获得超5个赞
getView()
ListView
height=wrap_content
ListView
ListView
convertViews
getView()

富国沪深
TA贡献1790条经验 获得超9个赞
有帮助的注释
添加回答
举报
0/150
提交
取消