मेरे पास एक कस्टम सूची एडाप्टर है:
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@43cff8f0
AFAIK, हालांकि मुझे यह स्पष्ट रूप से नहीं मिला, getView () को केवल दृश्य पंक्तियों के लिए कहा जाता है। चूंकि मेरा ऐप चार दृश्य पंक्तियों के साथ शुरू होता है, कम से कम स्थिति संख्या 0-3 से साइकिल चलाना समझ में आता है। लेकिन बाकी एक गड़बड़ है:
- प्रत्येक पंक्ति को तीन बार क्यों कहा जाता है?
- जब मैंने अभी तक स्क्रॉल नहीं किया है, तो ये कन्वर्ट व्यू कहां से आ रहे हैं?
मैंने थोड़ा रीचेक किया, और एक अच्छा जवाब दिए बिना, मैंने नोटिस किया कि लोग इस मुद्दे को लेआउट मुद्दों के साथ जोड़ रहे थे। तो मामले में, यहां वह लेआउट है जिसमें सूची शामिल है:
<?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"
android:drawSelectorOnTop="false" />
</LinearLayout>
और प्रत्येक व्यक्तिगत पंक्ति का लेआउट:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="108dp"
android:padding="4dp">
<ImageView
android:id="@+id/thumb"
android:layout_width="120dp"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:src="@drawable/loading" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="18dp"
android:layout_toRightOf="@id/thumb"
android:layout_alignParentBottom="true"
android:singleLine="true" />
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="18dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:paddingRight="4dp"
android:singleLine="true" />
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="17dp"
android:layout_toRightOf="@id/thumb"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:paddingRight="4dp"
android:layout_alignWithParentIfMissing="true"
android:gravity="center" />
</RelativeLayout>
अपना समय देने के लिए धन्यवाद