मैंने एक गतिशील ListView बनाया है जहां ऑब्जेक्ट्स शीर्ष से जोड़े गए हैं।Android ListView setSelectionFromTop काम नहीं कर रहा
जब उपयोगकर्ता बटन दबाता है तो सूची दृश्य को किसी सरणी की सामग्री से अपडेट किया जाता है, तो सूचित करेंडेटासेट चेंज() को कस्टम सरणी एडाप्टर पर कॉल किया जाता है।
अब मैं सूची स्थिति को जोड़ते समय mantain करना चाहते हैं, तो मैं इस कोड को कहा:
// pausedCounter trace the number of objects(lines) to add to the listView
int idx = listView.getFirstVisiblePosition() + pausedCounter;
View first = listView.getChildAt(0);
int position = 0;
if (first != null)
position = first.getTop();
// cycle to add the new objects to the listView
for (Tweet[] tweets1 : pausedTweets)
super.updateTweets(tweets1);
listView.setSelectionFromTop(idx, position);
// reset of counter and accumulator
pausedTweets = new ArrayList<Tweet[]>();
pausedCounter = 0;
इस तरह से इस कोड को व्यवहार: यदि getFirstVisiblePosition रिटर्न 2, और pausedCounter 5, अपडेट के बाद सूची नए पांच तत्वों के 3 वें स्थान पर सेट की जाएगी।
मैं चाहता हूं कि सूची का पहला दृश्य तत्व 8 वें स्थान पर सेट हो।
आगे परीक्षण करने के बाद मुझे पता चला कि ListView के बच्चों की संख्या कोड के इस टुकड़े की चलाने के दौरान परिवर्तन नहीं करता है, तो यह मैं setSelectionFromTop कहा जाता है के बाद ListView के आकार अद्यतन करता है। क्या यह समस्या हो सकती है?
बहुत धन्यवाद, इसके साथ: listview.post (...) listView.setSelection ने मेरे लिए फिर से काम किया (किसी अन्य तरीके से काम नहीं किया) – cV2