इसलिए मुझे यह समस्या पहले हुई थी, और स्वाभाविक रूप से मैंने यहां पर मदद मांगी । लुक्सप्रोग का जवाब बहुत अच्छा था क्योंकि मुझे इस बारे में कोई पता नहीं था कि लिस्ट व्यू और ग्रिडीड ने खुद को रीसाइक्लिंग दृश्यों के साथ कैसे अनुकूलित किया। इसलिए उनकी सलाह से मैं अपने ग्रिड व्यू में दृश्य जोड़ने में सक्षम था। समस्या अब मेरे पास कुछ है जिसका कोई मतलब नहीं है। यह मेरे getView
से मेरी है BaseAdapter
:
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
convertView = inflater.inflate(R.layout.day_view_item, parent, false);
}
Log.d("DayViewActivity", "Position is: "+position);
((TextView)convertView.findViewById(R.id.day_hour_side)).setText(array[position]);
LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.day_event_layout);
//layout.addView(new EventFrame(parent.getContext()));
TextView create = new TextView(DayViewActivity.this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 62, getResources().getDisplayMetrics()), 1.0f);
params.topMargin = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, getResources().getDisplayMetrics());
params.bottomMargin = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, getResources().getDisplayMetrics());
create.setLayoutParams(params);
create.setBackgroundColor(Color.BLUE);
create.setText("Test");
//the following is my original LinearLayout.LayoutParams for correctly setting the TextView Height
//new LinearLayout.LayoutParams(0, (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics()), 1.0f)
if(position == 0) {
Log.d("DayViewActivity", "This should only be running when position is 0. The position is: "+position);
layout.addView(create);
}
return convertView;
}
}
समस्या तब होती है जब मैं स्क्रॉल करता हूं, यह होता है, न कि स्थिति 0 पर ... स्थिति 6 और स्थिति 8 जैसी दिखती है, साथ ही यह दो स्थिति 8 में रखती है। अब मैं अभी भी ListView और GridView का उपयोग करके हैंग होने की कोशिश कर रहा हूं इसलिए समझ में नहीं आ रहा है कि ऐसा क्यों हो रहा है। एक मुख्य कारण जो मैं यह सवाल कर रहा हूं, वह है दूसरों की मदद करना, जो शायद ListView और GridView के पुनर्चक्रण दृश्य के बारे में नहीं जानते हैं, या जिस तरह से यह लेख इसे लागू करता है, ScrapView तंत्र।
बाद में संपादित करें
एक Google IO टॉक से लिंक जोड़ना जो मूल रूप से आप सभी को यह समझने की आवश्यकता है कि ListView कैसे काम करता है। लिंक टिप्पणियों पर मृत था। तो उस लिंक को अपडेट करने के लिए user3427079 काफी अच्छा था। यहाँ यह आसान पहुँच के लिए है।
0
) के लिए किए गए परिवर्तनों को वापस करने के लिए आपके पास कोड का एक टुकड़ा होना चाहिए ।
ListView
नई पंक्ति को दिखाने की आवश्यकता होती है (जैसे नीचे / ऊपर स्क्रॉल करना जारी रखें)। समस्या यह है कि जो दृश्य अभी गायब हो गया है और जिसका उपयोग भविष्य में आवश्यक पदों पर किया जाएगा TextView
, उसमें पहले से ही जोड़ा गया है, यह समस्या है। इसे हल करने के लिए आपको इसे getView
विधि में निकालना होगा यदि getView
विधि को किसी अन्य स्थिति के लिए कहा जाता है 0
।