2016-09-10 5 views
6

私はFacebookのフィードに似たアプリを持っています。私はreact-native-videoを使ってビデオをレンダリングしています。ビデオをフルスクリーンにするために、コンポーネントを別のコンポーネントにラップしました。この別のコンポーネントにはTouchableHightlightがあります。 TouchableHighlightのonPressイベント内で、新しいルートが作成され、this.props.childrenがルート内のコンポーネントに小道具として渡されます。 {this.props.children}をレンダリングする新しいコンポーネントです。しかし、これにより、ラップされたビデオコンポーネントがアンマウントされ、新しいビューで再構築されます(つまり、コンポーネントのコンストラクタが再び呼び出されます)。これにより、同じコンポーネントを使用してバッファリングされたデータを格納してからどこかから再開するのではなく、ビデオを最初の位置からロードして開始します。デモプロジェクトへ2つのビュー間でのシェアビューの反応ネイティブ

リンク:https://github.com/shahankit/video-player-fullscreen

私はコントロールが渡された小道具時に埋め込まれていますプレイヤーがコントロールをデフォルトに似た何かをしたいです。部品を作る

この方法には、フルスクリーンは次のようなビューの階層を作成しますreact-native-lightbox

+1

の不透明度を切り替えるために小さなビデオビューでたonPress使用しますか、ない? –

+0

私は状態を使用することができますが、実際のアプリケーションでは、非常に複雑な階層構造でビデオをラップしています。フルスクリーンを作成するには、ビデオコンポーネントをラップするビューをすべてのコンポーネントの上に置き、画面全体をカバーする必要があります。 – meteors

+0

ビューをCSSでフルスクリーンに変更できます。 {位置: '絶対'、上:0、左:0、右:0、下:0} Z-indexは、反応ネイティブではサポートされていないため、問題になる可能性があります。その場合は、現在の再生時間を新しいコンポーネントの小道具として渡してそこからビデオを開始することを検討したいかもしれません。 –

答えて

0

から取られて行きます。その後、

- Root View(position: absolute) 
    - Your old entire screen layout which small video view is inside of it. 
    - Your fullscreen video view with opacity = 0 with more zIndex 

ビデオがフルスクリーンであれば、あなたがコントロールする状態を使用することができ、変更を加えるためにルートを使用する必要がありますかフルスクリーンビデオビュー

関連する問題