2016-10-11 8 views
2

私はScrollViewアイテムのリストを持っています。 1つのアイテムをクリックすると、新しいシーンに移動します(右側からスライドします)。しかし、遷移期間中に2つのシーンが重なり合う。アニメーション/トランジションが終了しても問題ありません。反応するネイティブのナビゲーターシーンオーバーラップを回避する

enter image description here

とHERESに関連するコード:

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> 
     ) 
     }} 
    /> 
    ) 
    } 

上の任意のアイデアはどのようにこの問題を解決するには、ここ

は例ですか?

答えて

1

ナビゲータは、2つのシーン間のトランジション中にアニメーションを使用します。あなたのケースでは、移行中にフェードを使用します。どのように別のアニメーションを使用するのですか?ナビゲータにScene Transitionsの機能があり、アニメーションを変更しようとする可能性があります。

+0

本当にシーントランジションの問題でした。私は適切なものを使用していませんでした。 –

+0

シミュレータ/エミュレータを使用しているときに、実際のデバイスよりもはるかに遅いことが明らかになることを追加したいだけです。特にAndroidのもの。また、デバッグモードとホットリロードモードを有効にすると、シミュレータはさらに遅くなります。 – jbarradas

関連する問題