2011-09-16 20 views
6

हैलो मैं एक ViewPager का उपयोग कर रहा हूं लेकिन अब मैं कोशिकाओं को पुन: उत्पन्न करने के बजाय राज्यों को बनाए रखना चाहता हूं।ViewPager

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

क्या व्यूहोल्डर करने का कोई तरीका है, कुछ प्रकार की ऑब्जेक्ट जो प्रत्येक दृश्य की स्थिति को बरकरार रखती है, इसे प्रारंभ में लोड होने के बाद, ताकि व्यूपार्जर कोशिकाएं तेज़ी से लोड हो जाएं। (वहाँ कुछ प्रसंस्करण और प्रत्येक कोशिका के लिए प्रतिपादन है, लेकिन मैं अपने आप को स्मृति की सीमा का परीक्षण करेंगे)

here is my viewpager

उत्तर

8

उपयोग FragmentPagerAdapter है, जो सभी टुकड़ा वस्तुओं है कि सक्रिय रूप से स्मृति में बनाया गया है रखता है:

/** 
* Implementation of {@link android.support.v4.view.PagerAdapter} that 
* represents each page as a {@link Fragment} that is persistently 
* kept in the fragment manager as long as the user can return to the page. 
*/ 
2

जाने के बाद उन्हें बढ़ लेआउट के एक hashmap करें। यदि आपके पास पहले से संबंधित पृष्ठ के लिए एक लेआउट है, तो हैश मैप से लेआउट को प्रतिस्थापित करें, अन्यथा नया लेआउट बढ़ाएं और इसे हैश मैप में स्टोर करें। मैं गारंटी नहीं दे सकता कि क्या आप राज्यों को बहाल कर सकते हैं। लेकिन जब भी उपयोगकर्ता पृष्ठों के बीच स्विच करता है तो यह आपके बढ़ते समय को कम कर देगा।

+1

इस बहुत अधिक स्मृति का समय लग नहीं होगा? – user2520215