transparent
オプションがtrue
の場合、オーバーレイをクリックしてreact native modalを閉じることはできますか?ドキュメンテーションはそれについて何も提供しません。出来ますか?オーバーレイをクリックしてネイティブモーダルを反応させますか?
9
A
答えて
18
私が正しく理解していれば、ユーザーが外部をクリックしたときにモーダルを閉じたいと思うでしょうか?
そうならば、私はいくつかの時間前に、この検索し、私が覚えている唯一の解決策は、(私がこれまで使ってきた 一つである)この1だった:
render() {
if (!this.state.modalVisible)
return null
return (
<View>
<Modal
animationType="fade"
transparent={true}
visible={this.state.modalVisible}
onRequestClose={() => {this.setModalVisible(false)}}
>
<TouchableOpacity
style={styles.container}
activeOpacity={1}
onPressOut={() => {this.setModalVisible(false)}}
>
<ScrollView
directionalLockEnabled={true}
contentContainerStyle={styles.scrollModal}
>
<TouchableWithoutFeedback>
<View style={styles.modalContainer}>
// Here you put the content of your modal.
</View>
</TouchableWithoutFeedback>
</ScrollView>
</TouchableOpacity>
</Modal>
</View>
)
}
// Then on setModalVisible(), you do everything that you need to do when closing or opening the modal.
setModalVisible(visible) {
this.setState({
modalVisible: visible,
})
}
説明
これは基本的に画面全体でTouchableOpacityを使用して、ユーザーがモーダルを閉じるためにクリックするときに取得します。 TouchableWithoutFeedbackは、TouchableOpacityがModalの内部で動作するのを避けるためのものです。
もっと良い解決策がある場合は、ここをクリックしてください。窓と上記の別のいずれかの下
<touchableObacity onPress={()=>this.setState({modalVisibilty:false})}>
<View style={{opacity:0, flex:1 }}/>
</touchableOpacity>
をし、自分の画面に合わせてレイアウトスタイルを変更します。
1
我々は追加して、それをうまくすることができます。
説明:
あなたはユーザーのタッチをキャッチし、falseにモーダル表示状態を変更するには2つの大きな隠しボタンを行います。
関連する問題
- 1. リストビューアイテムでネイティブモーダルに反応するをクリック
- 2. コンテンツをオーバーレイして反応させる
- 3. ListViewのネイティブモーダルに反応します
- 4. ボタンをクリックしてもテキストがクリックされても反応しません
- 5. 反応日ピッカー(オーバーレイなし)
- 6. ポップアップボタンをクリックして反応をクリック
- 7. オーバーレイの反応設定オーバーレイに失敗しました
- 8. CheckedTextViewがクリックに反応しません
- 9. リサイクルビューでボタンをクリックしても反応しません
- 10. フォームでオーバーレイを開く反応で反応するonFocus
- 11. ネイティブモーダル表示に対応していますが、Androidではできません。
- 12. 反応成分/オーバーレイ反応成分で反応成分DidMountを使用する
- 13. 反応ナビゲーションナビゲータにオーバーレイを追加
- 14. 反応ネイティブモーダルが表示されているときにstatusBarを非表示にする方法は?
- 15. 反応が反応した反応成分から反応して反応する成分を反応ユニットテスト
- 16. 要素から反応する成分を反応させる
- 17. 反応ネイティブモーダルは、私が使用することを指定した高さと幅
- 18. フォームが間違ったボタンをクリックして反応します
- 19. 反応ネイティブのテキストをクリックしてコンポジットを開きます。
- 20. 反応が入力されたときにオーバーレイを表示
- 21. はネイティブアニメーションネイティブドライバサポートカラー/のbackgroundColorを反応させていますか?
- 22. クリック可能なオーバーレイを作成し、ボタンをクリックしてもクリックします
- 23. 壊れた自動バインディング反応し、ネイティブとを使用して反応させ、リレーので、私はネイティブ反応し、反応するリレーを使用してい
- 24. 数回クリックするとボタンが反応しませんlib-gdx
- 25. 望ましくない背景色オーバーレイと反応し
- 26. Draft.js <Editor/>は「空白」をクリックしても反応しません。
- 27. 増補反応し、ルータモジュールを反応させ、ルータ中継タイピングで
- 28. -tagsinputを反応させると反応し、オートサジェスト&ES5
- 29. 入力要素をオートフォーカスして反応させます。JS
- 30. スライダを反応させようとしています
奇妙な解決策ですが、機能します。ありがとう:) –
私はこのアイデアで私の問題を解決しましたが、 '' TouchableOpacity''は '' onPressOut'''を持たず、 '' TouchableOpacity'''を空にする必要がありました'' TouchableWithoutFeedback'''の代わりに '' – samthui7
のアクションも私のために働いた! – Aayushi