2013-02-10 54 views
10

मैं एक चैट-जैसी एप्लिकेशन बना रहा हूं जो स्क्रॉलव्यू का उपयोग कर स्क्रीन पर उपयोगकर्ता इनपुट को टेक्स्ट प्रदर्शित करता है। मैं जो कर रहा हूं वह स्क्रॉलव्यू को स्वतः स्क्रॉल कर रहा है क्योंकि स्क्रीन पर अधिक टेक्स्ट संलग्न किया गया है। मैं,स्क्रॉलव्यू पूरी तरह से नीचे स्क्रॉल नहीं कर रहा है

ScrollView my_scrollview = (ScrollView) findViewById(R.id.scroller); 
my_scrollview.fullScroll(ScrollView.FOCUS_DOWN); 

यह काम करने के लिए लगता है का उपयोग कर रहा है, हालांकि किसी कारण से, क्योंकि कुंजीपटल स्क्रीन पर आमतौर पर है, जबकि बातें जब यह नीचे scrollview स्क्रॉल पूरी तरह से नहीं है - नवीनतम TextView जोड़ा प्रदर्शित नहीं किया जाता (आपको मैन्युअल रूप से नवीनतम को स्क्रॉल करना होगा)। मैं इसे ठीक करने के बारे में कैसे जा सकता हूं?

उत्तर

24

मैंने चारों ओर देखा, और पाया कि कुछ other people एक ही समस्या में भाग गए हैं।

मैं कोड के इस टुकड़े का उपयोग कर इस समस्या का समाधान:

final ScrollView scrollView = (ScrollView) findViewById(R.id.scroll_view); 

scrollView.post(new Runnable() 
{ 
    public void run() 
    { 
     scrollView.fullScroll(View.FOCUS_DOWN); 
    } 
}); 

उम्मीद है कि इस किसी वहाँ बाहर करने में मदद कर सकते हैं!

+0

हे मुझे एक ही समस्या का सामना करना पड़ रहा है लेकिन आपके कोड को आजमाकर हल करने में सक्षम नहीं है ...... क्या आप कृपया मदद कर सकते हैं? – nidhi

+0

बढ़िया! वह 100% काम करता है! –

+0

जो मेरे लिए भी काम करता है, महान उत्तर –

12

इसकी देर हो चुकी है लेकिन इस समस्या के साथ किसी को भी मदद कर सकती है .. अंतिम तत्व जोड़ने और इसे स्क्रॉल के लिए अपडेट करने में लगभग 200 मिनीसेकंड लगते हैं, इसलिए यह निश्चित रूप से काम करेगा।

void scrollDown() 
{ 
    Thread scrollThread = new Thread(){ 
     public void run(){ 
      try { 
       sleep(200); 
       ChatActivity.this.runOnUiThread(new Runnable() { 
        public void run() { 
         myScrollView.fullScroll(View.FOCUS_DOWN); 
        }  
       }); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 
    scrollThread.start(); 
} 

scrollView में तत्व जोड़ने के बाद बस scrollDown(); पर कॉल करें।

+4

आप 'my_scrollview.postDelayed भी उपयोग कर सकते हैं (नया रननेबल() {...}, 200) ' – Wirling

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

  • कोई संबंधित समस्या नहीं^_^