सवाल एंड्रॉइड गतिशील रूप से स्क्रॉल एंड पर सूचीदृश्य लोड करें?


मैं एक समय में एचटीपी सर्वर से एक सूची दृश्य लोड कर रहा हूं, 20,सूचीदृश्य के अंत में मैं सर्वर से अगले 20 डेटा लोड करना चाहता हूं और यह प्रक्रिया सर्वर तक डेटा समाप्त होने तक जारी रहेगी, मैंने कक्षा का उपयोग किया जो बेसएडाप्टर को पहले 20 डेटा को पॉप्युलेट करने के लिए बढ़ाता है। मुझे क्या करना चाहिए ??


62
2018-02-21 11:23


मूल




जवाब:


यह एक सुरुचिपूर्ण समाधान भी दिखता है: http://benjii.me/2010/08/endless-scrolling-listview-in-android/

यह भी लागू करता है AbsListView.OnScrollListener, और वर्तमान स्क्रॉल दृश्य में शेष वस्तुओं की एक निश्चित दहलीज के रूप में जल्द ही अधिक सामग्री लोड करने के लिए AsyncTask का उपयोग करता है।


42
2018-03-11 00:27



महान समाधान! लेकिन मैंने बदलने का फैसला किया है (firstVisibleItem + visibleThreshold) सेवा मेरे (firstVisibleItem + visibleItemCount)। - Dmitry Zaytsev
लिंक अब काम नहीं कर रहा है। (11 अप्रैल, 2016 तक) - ProgDevCode


ठीक है मैंने देखा है कि यह एक आम समस्या है, इसलिए मैंने एक बनाया है लघु पुस्तकालय कस्टम लोड के साथ और ListView को रीफ्रेश करने के लिए खींचें GitHubकृपया इसे जांचें यहाँ, सभी को भंडार में बहुत समझाया गया है।


19
2018-01-24 16:34





आप एक कार्यान्वित कर सकते हैं AbsListView.OnScrollListener, जो सूचित हो जाता है और जो आपको अधिक डेटा लोड करने की अनुमति देता है।

उदाहरण देखें

....
ListView.setOnScrollListener(this);
....

और फिर एक नज़र डालें https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java#L287

या एक नज़र डालें सूची 9 उदाहरण एसडीके उदाहरणों से।


10
2018-02-22 06:52





हेको Rupp का कोड इस समस्या के लिए सबसे अच्छा विकल्प है।  केवल एक चीज आपको करना चाहिए onScrollListener और में onScroll()  बस कोड का उपयोग कर सूची का अंत है या नहीं

boolean loadMore =  firstVisibleItem + visibleItemCount >= totalItemCount-1;

यदि नियमित रूप से फैशन के साथ अपना डेटा लोड करें ..

इस स्निपेट के लिए thik Heiko Rupp :)


8
2017-08-22 12:39





सूची दृश्य के अंत में मैं यही डेटा लोड करता था

        listview.setOnScrollListener(new OnScrollListener(){

        @Override
        public void onScroll(AbsListView view,
        int firstVisibleItem, int visibleItemCount,
        int totalItemCount) {
        //Algorithm to check if the last item is visible or not
        final int lastItem = firstVisibleItem + visibleItemCount;
        if(lastItem == totalItemCount){                 
        // you have reached end of list, load more data             
        }
       } 
        @Override
        public void onScrollStateChanged(AbsListView view,int scrollState) {
        //blank, not using this
        }
        });

7
2017-10-16 19:13





जब मैं गलती से एक गैर-यूई धागे से एक दृश्य को अद्यतन करने की कोशिश कर रहा था तो मुझे यह समस्या थी। यूई थ्रेड को यूई अपडेट कोड को धक्का देना मेरी समस्या का समाधान!

Handler mainHandler = new Handler(Looper.getMainLooper());
mainHandler.post(new Runnable() {
    @Override
    public void run() {
            // insert ui update code here
        }
    }
});

0
2018-01-19 16:30