मैं कुछ सामान करना चाहता हूं। मैं ListView
में आलसी लोडिंग करना चाहता हूं। मेरे ListView
में 10,000 से अधिक डेटा & केवल TextView
में हैं। इसलिए जब मैं सूची गतिविधि लॉन्च करता हूं तो मैं पहली बार उस डेटा को लोड नहीं कर सकता। यह कुशल नहीं है इसलिए मैं सूची में पहले 20 या 30 आइटम लोड कर सकता हूं। ListView
की पंक्तियों को लोड करते समय लोड किया जाता है। इसलिए जब मैं पिछले सूचकांक पर ListView
की अंतिम अनुक्रमणिका तक पहुंचता हूं, तो मैं प्रोग्रेसबार डालूंगा, यह ध्यान देगा कि नया डेटा लोड हो गया है, इसलिए उस समय नया डेटा अंतिम + 1 इंडेक्स के साथ लोड होगा। मैं यह कैसे कर सकता हूँ?एंड्रॉइड सूचीदृश्य आलसी लोडिंग
उत्तर
आप अंतहीन एडाप्टर कार्यान्वयन का उपयोग करके इसे प्राप्त कर सकते हैं। यह वही करता है जो आप चाहते हैं। आप प्रति स्क्रॉल को रीफ्रेश करने के लिए पंक्तियों की संख्या को भी सीमित कर सकते हैं। यहाँ यह करने के लिए एक लिंक
Android: Implementing progressbar and "loading..." for Endless List like Android Market
https://github.com/commonsguy/cwac-endless
इसके इस्तेमाल के लिये आप कैसे असीमता संभाल करने के बारे में जानकारी प्रदान करने के लिए EndlessAdapter का विस्तार है।,। विशेष रूप से, आपको अपने वास्तविक एडाप्टर में किसी भी पंक्ति से स्वतंत्र पंक्ति दृश्य प्रदान करने में सक्षम होना चाहिए, जो किसी अन्य विधि में, आपके मुख्य एडाप्टर में वास्तविक डेटा में लोड करते समय प्लेसहोल्डर के रूप में कार्य करेगा। फिर, आपसे थोड़ी मदद के साथ, यह नए डेटा में निर्बाध रूप से संक्रमण करता है।
धन्यवाद दोस्त, मुझे इसे आजमाएं। – Jai
लिंक अब टूट गया है! :( –
// बुला समारोह में डाल:
@Override
public View onCreateView(android.view.LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
ScrollListener scrollListener = new ScrollListener();
listView.setOnScrollListener(scrollListener);
}
और भीतरी वर्ग:
class ScrollListener implements OnScrollListener
{
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
{
int size = searchedPeople.size();
if(isScrolled && totalItemCount != 0 && size < totalPeoples)
{
if(firstVisibleItem + visibleItemCount >= totalItemCount)
{
yourfunction(size, size + limit); // call service in your functioin
isScrolled = false;
}
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState)
{
}
}
अपने सूचियां स्क्रॉल बनाने के लिए तेजी से: -
- इस्तेमाल किया की स्थिति की संख्या कम अपने एडाप्टर के
getView
में। - कचरा संग्रहण चेतावनी है कि आप लॉग
- पुस्तक जोड़ें समारोह में मिलता है की संख्या (पंक्तियों को प्रति स्क्रॉल ताज़ा करने की संख्या को सीमित)
ListView के लिए एक onScrollListener जोड़े को कम करें। जब उपयोगकर्ता स्क्रॉल करता है, तो जांच करें कि ListView इसके अंत के करीब है या नहीं। यदि हां, तो अधिक डेटा प्राप्त करें। एक उदाहरण के रूप:
public abstract class LazyLoader implements AbsListView.OnScrollListener {
private static final int DEFAULT_THRESHOLD = 10 ;
private boolean loading = true ;
private int previousTotal = 0 ;
private int threshold = DEFAULT_THRESHOLD ;
public LazyLoader() {}
public LazyLoader(int threshold) {
this.threshold = threshold;
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if(loading) {
if(totalItemCount > previousTotal) {
// the loading has finished
loading = false ;
previousTotal = totalItemCount ;
}
}
// check if the List needs more data
if(!loading && ((firstVisibleItem + visibleItemCount) >= (totalItemCount - threshold))) {
loading = true ;
// List needs more data. Go fetch !!
loadMore(view, firstVisibleItem,
visibleItemCount, totalItemCount);
}
}
// Called when the user is nearing the end of the ListView
// and the ListView is ready to add more items.
public abstract void loadMore(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount);
}
गतिविधि:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setOnScrollListener(new LazyLoader() {
@Override
public void loadMore(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// Fetch your data here !!!
}
});
}
}
आप पा सकते हैं पूरा कार्यान्वयन at this link
- 1. एंड्रॉइड: गैलरी में आलसी लोडिंग
- 2. रेल 3: आलसी लोडिंग बनाम आलसी लोडिंग
- 3. लागू आलसी लोडिंग बनाम आलसी लोडिंग
- 4. सिद्धांत आलसी लोडिंग
- 5. गुणों की आलसी लोडिंग
- 6. आलसी लोडिंग जावास्क्रिप्ट
- 7. आलसी लोडिंग लाइब्रेरी?
- 8. इकाई फ्रेमवर्क आलसी लोडिंग
- 9. यूनिट परीक्षण (आलसी लोडिंग)
- 10. आलसी लोडिंग क्या है?
- 11. gwt आलसी लोडिंग
- 12. UITableView आलसी लोडिंग अनुकूलन
- 13. node.js में आलसी लोडिंग
- 14. रेल में उत्सुक लोडिंग और आलसी लोडिंग
- 15. आलसी लोडिंग, डिफर्ड लोडिंग और उत्सुक लोडिंग एंटिटी फ्रेमवर्क
- 16. वसंत, हाइबरनेट, ब्लॉब आलसी लोडिंग
- 17. jQuery अनंत स्क्रॉलिंग/आलसी लोडिंग
- 18. आलसी लोडिंग, फ़िल्टरिंग और सॉर्टिंग
- 19. असेंबली/कैटलॉग की आलसी लोडिंग
- 20. हाइबरनेट आलसी लोडिंग और हेज़ेलकास्ट
- 21. एंड्रॉइड पर लिस्ट व्यू में आलसी लोडिंग छवियां
- 22. एंड्रॉइड: सूचीदृश्य
- 23. आलसी लिपि लोडिंग आलसी? (या आलसी लोडिंग बाहरी जेएस सामग्री पहले से निकाल दी गई घटनाओं पर निर्भर है)
- 24. वसंत में आलसी लोडिंग डीटीओ फ़ील्ड
- 25. पृथक वस्तुओं में आलसी लोडिंग हाइबरनेट
- 26. हाइबरनेट में आलसी लोडिंग को अक्षम करें
- 27. इकाई फ्रेमवर्क कैस्केडिंग हटाना और आलसी लोडिंग
- 28. आलसी लोडिंग वास्तव में खराब है?
- 29. इस LINQ क्वेरी को आलसी लोडिंग
- 30. PHP आलसी लोडिंग ऑब्जेक्ट्स और निर्भरता इंजेक्शन
आप दिखा सकते हैं कि तुम क्या करने की कोशिश की है? – gideon
या मैंने उदाहरण के रूप में यहां छवि जोड़ा है .. इसे एक चेक करें – Jai
पिकासो के बारे में कैसे? क्या यह आपकी ज़रूरत को पूरा करता है? http://square.github.io/picasso/ – phi