2017-05-12 2 views
0

を反応させるのネイティブリアクト:Instagramのスタイルのパン/ズームは、私がイメージ使用してInstagramのに似て、ズーム/パンを実装する方法を探していますネイティブ

Instagram pan/zoom

または参照してください。https://www.youtube.com/watch?v=Ahzz3ik-EvQ

私は」たとえば、ViewTransformerのようなコンポーネントをFlatList内で試しましたが、アプリケーションコンポーネントツリーの上位に表示される要素(TabNavigationバーなど)は、ズームされた画像の上端の前景に残ります。

これはReact Nativeでどのように実装することができますか?

おかげ

UPDATE

Facebookのヨガは(レイアウトエンジンを反応する)の位置を可能にするために、親切に再オープン機能のリクエストがあります:固定支持します。このような特徴は、レンダリングエンジンに、親要素ではなく、スクリーンに対する要素の配置方法を容易に通知することを可能にする。これにより、position:fixedを持つコンポーネントは、ルートに対して相対的なzIndexを持つことができます。私はこのような特徴がこの問題を容易に解決すると信じています。

https://github.com/facebook/yoga/issues/264

+0

これは、それはまだそれが私が提案コンポーネントを試してみましたポインタ@TGMCiansためhttps://www.npmjs.com/package/react-native-photo-view –

+1

おかげでどのように、カスタマイズされたイメージ図のように見えますが、フラットリスト行のコンテキスト内でのみズームし、画面全体では表示されません。https://ibb.co/hW5ao5を参照してください。 ポジションがないようです:反応ネイティブの固定属性なので、要素は親要素ではなくスクリーン(実際にはルート要素となります)をposition:absoluteと同じように使用します。 また、root-elementでピンチ/ズームの開始時にイメージを交換するためにreact-native-root-siblingsを使用しましたが、スワップアウトされた要素を取得してジェスチャーを制御できませんでした。 – Francesco

+0

私は参照してください。私はFacebookのグループにあなたの質問をしたかもしれませんあなたの質問に迅速になるかもしれない –

答えて

0

あなたは以下のように画像を入れて、maximumZoomScaleとminimumZoomScale値を設定ピンチズームを実現するためにscrollviewを使用することができます。 これはiosでのみ動作します。

<ScrollView maximumZoomScale={5} scrollEnabled={true} minimumZoomScale={1} showsHorizontalScrollIndicator={false} showsVerticalScrollIndicator={false}> 
<Image 
    style={{height:100, width: 300}} 
    source={{ uri: "https://img0.gaadicdn.com/images/car- 
      images/496x206/Lamborghini/Lamborghini-Huracan/Lamborghini- 
      Huracan-Performante/047.jpg" 
     }} 
    /> 
</ScrollView> 
+0

こんにちは@Soorajヒントのためのチップ:-)私はあなたの提案をFlatList内で試してみましたそれでも行内をズームするだけです。私は、Reactに、その行のように、親要素ではなく、親要素を相対的に配置するように指示します。そのため、zIndexをズームすると、ルートに相対して、すべてのコンポーネントの最前線に来るようになります(つまり、他の行、ヘッダー、ナビゲーションバー)。 – Francesco

+0

こんにちは@Francesco私はこのコンポーネントがあなたに役立つかもしれないと思うhttps://shoutem.github.io/docs/ui-toolkit/components/lightbox –

関連する問題