2016-10-11 2 views
2

J'ai un ScrollView avec une liste d'éléments. Lorsque je clique sur un élément, je navigue vers une nouvelle scène (glisser de la droite). Cependant, pendant la période de transition, les deux scènes se chevauchent; Ils vont bien après l'animation/transition.Éviter le chevauchement de la scène du navigateur natif de réaction

Voici un exemple:

enter image description here

et Heres le code connexe:

render() { 
    return (
     <Navigator 
     initialRoute={routes.frontpage()} 
     renderScene={(route, navigator) => { 
     if(route.index === 1) { 
      return (
      <TouchableHighlight 
       onPress={() => navigator.pop()}> 
      <View style={{flex: 1}}> 
       <Text style={styles.header}> other </Text> 
       <Text> {route.post.title} </Text> 
      </View> 
      </TouchableHighlight> 
     ) 
     } 
     return (
      <View style={{flex: 1}}> 
      <Text style={styles.header}> Frontpage </Text> 
      <ScrollView> 
       { 
       this.props.posts.map(post => (
        <TouchableHighlight 
        key={post.created} 
        onPress={() => { 
         if (route.index === 0) { 
         return navigator.push(routes.post(post)) 
         } 

         navigator.pop(); 
        }}> 
        <View> 
         <PostSummary 
         title={post.title} 
         upvotes={post.ups} 
         author={post.author} 
         subreddit={post.subreddit} 
         created={post.created_utc} 
         /> 
        </View> 
        </TouchableHighlight> 
       )) 
       } 
      </ScrollView> 
      </View> 
     ) 
     }} 
    /> 
    ) 
    } 

Toutes les idées sur la façon de résoudre ce problème?

Répondre

1

Navigator utilise des animations pendant les transitions entre deux scènes. Dans votre cas, il utilise fondu pendant la transition. Que diriez-vous d'utiliser une animation différente. Navigator a Scene Transitions fonctionnalité que vous pouvez essayer de changer l'animation.

+0

Yeap, c'était vraiment un problème avec la transition de scène. Je n'utilisais pas l'approprié. –

+0

Je veux juste ajouter que cela devient plus évident lorsque vous utilisez un simulateur/émulateur, ce qui est beaucoup plus lent que sur un périphérique réel. En particulier celui d'Android. De plus, avec les modes Débogage et Rechargement à chaud activés, les simulateurs deviennent encore plus lents. – jbarradas