2013-01-22 18 views
12

यह किसी अन्य प्रश्न की पुनरावृत्ति नहीं है .. यह एक विस्तार है। मुझे उम्मीद है :)एक सूचीदृश्य के नीचे एंड्रॉइड स्क्रॉल

मेरे पास कुछ सौ वस्तुओं के साथ एक सूची दृश्य है .. वे किसी अन्य दृश्य में तारीख मुद्रित प्रविष्टियां हैं।

जब मैं स्क्रीन दिखाता हूं तो मैं इसे नीचे स्क्रॉल करना चाहता हूं, इसलिए सबसे हालिया आइटम प्रदर्शित होते हैं, लेकिन तार्किक "चीज़ के अंत" तरीके से।

m_list.setSelection(m_list.getCount()-1); 

Kewl के रूप में ... लेकिन :(अब मेरी सूची में स्क्रॉल करेगा नहीं। यह तल पर अटक लग रहे हैं। मैं "ट्रक" देख सकते हैं और यह छोटे और नीचे है।

ठीक है .. तो मेरी खोज इस प्रकार है .. मैं नीचे स्क्रॉल करके कैसे शुरू कर सकता हूं, लेकिन फिर भी उपयोगकर्ता (मुझे) स्क्रॉल करना चाहते हैं जब वे (मुझे दोबारा) स्क्रॉल करना चाहते हैं।

+0

आप सेट चयन फ़ंक्शन कहां कहते हैं? – Ferdau

+0

ओएमजी! वह सवाल ब्रिल था 'मैं इसे अपने अपहरण के अंदर बुला रहा था .. यह शुरुआत में मेरे परीक्षण कोड का हिस्सा था ... अद्भुत! – MollyCat

+0

एक ब्रिल 'उत्तर के लिए उपरोक्त? – Ferdau

उत्तर

42

एक्सएमएल में अपने listview पर निम्नलिखित सेट करें।

android:stackFromBottom="true" 
android:transcriptMode="alwaysScroll" 
+0

क्या यह आपके लिए काम करता है ?? – moDev

+0

यह वास्तव में नहीं था। मेरे पास पहले से ही m_list.setTranscriptMode (ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL) था; मेरे कोड में मेरी सूची लॉक लगती है। – MollyCat

+0

m_list.setStackFromBottom (सत्य); ऐसा कुछ भी प्रतीत नहीं होता था। नोट .. मैंने एक्सएमएल – MollyCat

12

आप निम्न का उपयोग कर सकते हैं सूची दृश्य के नीचे पहुंचने के लिए कोड।

listView.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      listView.setSelection(listView.getCount()); 
     } 
    }, 500); 

यह 500 एमएस की देरी निर्धारित करेगा। या आप

listView.post(new Runnable() { 
     @Override 
     public void run() { 
      listView.setSelection(listView.getCount()); 
     } 
    }); 

यह आपकी सूची दृश्य को व्यावहारिक रूप से स्क्रॉल कर सकता है।

+0

यह नीचे स्क्रॉल नहीं होगा। यह होगा, जैसा कि विधि नाम से पता चलता है कि आपके चयन को अंतिम आइटम के शीर्ष पर सेट किया गया है। यदि आपका आइटम बहुत लंबा है (कहें, लंबा हेडर) यह कुछ भी उपयोगी नहीं होगा। – Sver

+0

listView.set चयन (listView.getCount()); listView.set चयन (listView.getCount() - 1) होना चाहिए; –

संबंधित मुद्दे