2017-04-20 4 views
6

मैं एक Onscroll समारोह है कि इस तरह दिखता है के साथ एक FlatList है:प्रतिक्रिया स्थानीय Android FlatList Onscroll एनीमेशन

<Animated.View style={{ transform: [{translateX: this.state.scrollX}] }}> 
    <FlatList 
    data={ reactionGroup.reactions } 
    keyExtractor={ (i) => i.id + uuid.v4() } 
    renderItem={ this._renderItem } 
    horizontal={ true } 
    scrollEventThrottle={1} 
    onScroll={ reactionGroup.reactions.length > 1 ? this.onScroll : null } 
    showsHorizontalScrollIndicator={ false } /> 
</Animated.View> 

onScroll(event) { 
    const { timing } = Animated 
    if (event.nativeEvent.contentOffset.x > 0) { 
    timing(
     this.state.scrollX, 
     { toValue: -60, duration: 100, useNativeDriver: true } 
    ).start() 
    } else { 
    timing(
     this.state.scrollX, 
     { toValue: 0, duration: 100, useNativeDriver: true } 
    ).start() 
    } 
}, 

यह iOS पर अच्छा काम करता है, लेकिन Android के लिए एनीमेशन शुरू नहीं होगी जब तक FlatList स्क्रॉल बंद कर दिया है ।

मैं मूल रूप से एक एनीमेशन को मार रहा हूं जब उपयोगकर्ता स्क्रॉल करता है और क्षैतिज स्क्रॉल की शुरुआत में वापस जाने पर इसे वापस सेट करता है।

क्या इसे संभालने का कोई बेहतर तरीका है ताकि यह एंड्रॉइड पर काम कर सके?

मैंने ऐक्रोन.इवेंट को स्क्रॉल पर भी करने का प्रयास किया, लेकिन मैं सीधे स्क्रॉल स्थिति में एनीमेशन को टाई नहीं करना चाहता। स्क्रॉलिंग के दौरान इस दृष्टिकोण ने Android को एनिमेट करने की अनुमति दी, लेकिन यह बहुत ही विचित्र था।

आरएन: 0.43.3

उत्तर

0

आपको एनिमेटेड.वेन्ट दृष्टिकोण का उपयोग करना चाहिए। जैसा कि उदाहरण में the docs में देखा गया है, यह आपके लिए event.nativeEvent मानचित्र करता है।

https://medium.com/appandflow/react-native-collapsible-navbar-e51a049b560a

आशा है कि यह मदद करता है :-)

:

यहाँ कैसे एक आर.एन. योगदानकर्ता द्वारा पुस्तक पर एनएवी हेडर एनिमेट करने का एक उदाहरण के साथ एक ऐसे ब्लॉग पोस्ट है

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