2015-08-07 14 views
15

के शीर्ष पर स्क्रॉल करें बटन बटन के जवाब में ScrollView के शीर्ष पर स्क्रॉल करने का कोई तरीका है?स्क्रॉलव्यू

मैं पूरे पृष्ठ के एक re-render को मजबूर कर सकता हूं लेकिन यह बहुत अक्षम लगता है।

उत्तर

16

आप स्क्रॉलव्यू के "scrollTo" विधि को चला सकते हैं। Scrollview घटक https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollView.js#L288

आप को यहां बताए गए रेफरी संपत्ति की स्थापना और this.refs का उपयोग करके संदर्भ scrollview घटक प्राप्त कर सकते हैं के स्रोतों को देखो: https://facebook.github.io/react/docs/more-about-refs.html

+0

Jarek, आपको बहुत बहुत धन्यवाद। यह बहुत अच्छी तरह से काम करता है। मुझे दस्तावेज़ों में स्क्रॉल करने का कोई उल्लेख नहीं मिल रहा है (https://facebook.github.io/react-native/docs/scrollview.html#content), थोड़े परेशान! –

+0

हाँ। दस्तावेज़ बहुत सरल हैं (प्रारंभिक दिन) लेकिन मैं हमेशा प्रतिक्रिया-मूल के लिए स्रोत कोड पर वापस आ जाता हूं, क्योंकि यह अच्छी तरह से लिखा और पठनीय है। –

+0

https://github.com/exponentjs/react-native-invertible-scroll-view बहुत अच्छा है –

18
  1. सबसे पहले अपने ScrollView घटक के लिए एक ref गुण जोड़ें। उदाहरण: <ScrollView ref='_scrollView'>
  2. तब भी आप इस उदाहरण कर शीर्ष पर स्क्रॉल करने के लिए करना चाहते हैं: onPress={() => { this.refs._scrollView.scrollTo(0); }}
+1

यह अवमूल्यन है, लेकिन अभी भी अभी तक काम करता है। – Brendan

+1

किसी भी तरह एंड्रॉइड पर काम नहीं करता है, न तो यह और न ही नया स्क्रॉल (y ?: संख्या, ऑब्जेक्ट, एक्स ?: संख्या, एनिमेटेड ?: बूलियन)। कोई सुराग क्यों? –

15

एक साधारण उदाहरण:

<ListView 
    ref={ref => this.listView = ref} 
    onContentSizeChange={() => { 
    this.listView.scrollTo({y: 0}) 
    }} 
/> 
1

नियंत्रित करने के लिए scrollveiw या शीर्ष करने के लिए सूचीदृश्य संभव है एक बटन के साथ।

पहले, आप इसे में onScroll विधि डाल घटना इस्तेमाल कर सकते हैं ListView या scrollview की event.nativeEvent.contentOffset.y पता लगाने के लिए, आप इसे s show or hide according to the y` नियंत्रित करने के लिए एक राज्य सेट कर सकते हैं।

फिर, अपने पृष्ठ पर एक बटन सेट करें, इसे बनाने के लिए onPress विधि और .scrollTo विधि का उपयोग करें।

यहाँ एक कार्यान्वयन के लिए एक संदर्भ के रूप में इस्तेमाल किया जा सकता है: https://www.npmjs.com/package/react-native-scrolltotop

आशा इस मदद करता है

2

scrollTo(x,y) अब मान्य नहीं है। अब यह इस तरह scrollTo को एक वस्तु पारित करने के लिए सबसे अच्छा है:

this.refs.scrollView.scrollTo({x: 0, y: 0, animated: true})