2016-02-12 12 views
6

क्या onTopReached ईवेंट पर रीटिव नेटिव्स लिस्ट व्यू पर आइटम प्रीपेड करना संभव है, जिस तरह से कोई onEndReached ईवेंट पर आइटम जोड़ता है? वर्तमान में, जब मैं शीर्ष सूची में सूची दृश्य स्क्रॉल सूची में पंक्तियां प्रीपेड करता हूं।प्रतिक्रिया मूल सूची देखें: आइटम तैयार करें

उपयोग का मामला: मेरे पास एक फ़ीड वाला उपयोगकर्ता है जो उपयोगकर्ता स्क्रॉल कर सकता है। जब फ़ीड से दूर नेविगेट करते हैं और फिर उस पर वापस आते हैं तो मैं शीर्ष पर आखिरी देखी गई पंक्ति दिखाना चाहता हूं। उपयोगकर्ता को पिछली पंक्तियों को देखने के लिए या तो स्क्रॉल करने के लिए या निश्चित रूप से नई पंक्तियों को लोड करने के लिए नीचे स्क्रॉल करने में सक्षम होना चाहिए। मान लिया जाये कि मैं पहले से ही ListView पिछली बार देखा पंक्ति से एक काल्पनिक उदाहरण शुरू कर कुछ इस तरह दिखेगा प्रदान की गई है:

_onTopReached() { 
    this._unshiftRows(); 
    }, 

    _unshiftRows() { 
    var list = this.props.list; // The entire list 
    var lastSeenRowIndex = this.props.lastSeenRowIndex; 
    var prevRows = list.slice(0, i); 
    this._rows = prevRows.concat(this._rows); 
    this.setState({ 
     dataSource: this.state.dataSource.cloneWithRows(this._rows) 
    }); 
    }, 

उदाहरण में ऊपर मैं सिर्फ पहले ही प्रदान की पिछले करने के लिए सूची का पहला हिस्सा prepending कर रहा हूँ _onTopReached के साथ भाग तुरंत फायरिंग क्योंकि मैं पहले से ही शीर्ष पर हूं। हालांकि, सूची दृश्य को पिछली स्थिति को बनाए रखने के बजाय स्क्रीन के शीर्ष पर पहली पंक्ति के साथ पुन: प्रस्तुत करने का कारण बनता है।

एक विकल्प अंतिम बार पंक्ति के y ऑफ़सेट को स्टोर करने और उस स्थिति में ListView स्क्रॉल पर वापस जाने के लिए एक विकल्प है। हालांकि, उस विधि को मौजूदा पंक्ति से पहले प्रत्येक पंक्ति की आवश्यकता होती है जो समय लेने वाली है। मैं scrollWithoutAnimationTo के साथ सही ऑफसेट प्राप्त करने में सक्षम नहीं हूं या contentOffSet सेट करके भी सक्षम नहीं हूं। हालांकि, यदि मैं scrollTo का उपयोग करता हूं या scrollWithoutAnimationTo पर कॉल करने से पहले टाइमआउट सेट करता हूं और पहली पंक्तियों को वास्तविक समय में प्रस्तुत करने की अनुमति देता हूं तो यह सही स्थिति तक स्क्रॉल करता है। लेकिन यह बहुत अच्छा नहीं है।

सभी मदद की बहुत सराहना की जाएगी। धन्यवाद!

+0

मुझे मूल प्रतिक्रिया प्रतिक्रिया पसंद है, लेकिन ListView मुझे भी अच्छी तरह से काम करने की तरह सरल चीजें मिलती हैं (शुभकामनाएं) .. शुभकामनाएँ! –

+0

धन्यवाद बेन। ListView भी मेरे लिए बहुत निराशा का स्रोत रहा है। –

+0

अरे, क्या आप कभी इसे समझने में सक्षम थे? मैं इसे उचित स्थिति में स्क्रॉल करने में सक्षम हूं, लेकिन यह क्षणिक रूप से नई सामग्री को दिखाता है जो निराशाजनक है। – chapinkapa

उत्तर

0

आप डेटा स्रोत के लिए नए आइटम जोड़ने का उपयोग करना चाहिए FlatList

प्रयास करें और 'scrolltoindex' विधि का उपयोग करें।

FlatList

scrollToIndex (पैरामीटर: वस्तु) निर्दिष्ट सूचकांक ऐसी है कि वह शीर्ष पर ऐसी है कि viewPosition 0 स्थान यह, 1 तल पर देखा जा सकता है क्षेत्र में स्थित है में आइटम करने के लिए स्क्रॉल, और बीच में 0.5 केंद्रित। व्यूऑफसेट अंतिम लक्ष्य स्थिति को ऑफ़सेट करने के लिए पिक्सेल की एक निश्चित संख्या है।

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