ボタンを長く押すと、複数のオプションから選択できるポップアップが開く機能が追加されます。 TouchableHighlight(またはOpacity)のAFAIK onLongPressがレンダリング不可能なので、その小道具をレンダリングするコンポーネントがあるかどうかを知りたかったのです。私は状態を変更して別のビューを表示することができますが、背景をクリック(またはタップ)するとメニューが消えるように、メニューを透明にしたいと思います。OnLongPressポップアップでオプションのリストが反応するネイティブ
2
A
答えて
1
react-native-popoverプロジェクトはあなたにとってはオプションのようです。注意を要するのは、それが現時点でどの程度積極的に維持されているか分かりません。たとえば、現在のバージョンは0.3.0ですが、0.2.0だけがnpmに解放されます。その間に修正するには、issueを参照してください。
少なくとも、私があなたが信じていることを達成するには、このコードを見直すことができます。次に、透明な背景のボタンにポップオーバーコンポーネントを作成するプロジェクトサイトから拡張されたコードサンプルを示します。背景がタップされると、ポップオーバーが閉じます。
import React from 'react';
import {
AppRegistry,
StyleSheet,
Text,
TouchableOpacity,
View
} from 'react-native';
import Popover from 'react-native-popover';
class MyApp extends React.Component {
constructor (props) {
super(props);
this.onLongPress = this.onLongPress.bind(this);
this.onClose = this.onClose.bind(this);
this.state = {
isVisible: false,
buttonRect: {}
}
}
onLongPress() {
this._button.measure((ox, oy, width, height, px, py) => {
this.setState({
isVisible: true,
buttonRect: {x: px, y: py, width: width, height: height}
});
});
}
onClose() {
this.setState({ isVisible: false });
}
render() {
return (
<View style={styles.container}>
<TouchableOpacity
ref={(component) => this._button = component}
style={styles.button}
onLongPress={this.onLongPress}>
<Text>Long Press Me</Text>
</TouchableOpacity>
<Popover
isVisible={this.state.isVisible}
fromRect={this.state.buttonRect}
onClose={this.onClose}
backgroundStyle={styles.popoverBackground}>
<Text>I'm the content of this popover!</Text>
</Popover>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center'
},
button: {
backgroundColor: '#ddd',
padding: 20
},
popoverBackground: {
backgroundColor: 'rgba(0,0,0,0)'
}
});
AppRegistry.registerComponent('MyApp',() => MyApp);
関連する問題
- 1. が反応ネイティブ
- 2. 反応がネイティブで反応しない
- 3. ネイティブに反応するかネイティブで反応を開始する
- 4. 反応するネイティブ・ナビゲーションを反応させ、ネイティブ歩哨iosで
- 5. 反応ネイティブで反応ネイティブを実装する際にエラーが発生する
- 6. スタイルが反応ネイティブ
- 7. が反応し、ネイティブ
- 8. ネイティブのネイティブの反応ネイティブで
- 9. 共通のタブバーが反応し、ネイティブ・ルータ・フラックス&反応し、ネイティブ
- 10. 反応し、ネイティブ:コンポーネントのみ反応するネイティブ・ナビゲーションや反応ナビゲーションを
- 11. 反応するネイティブ実行-IOSは私がネイティブIOSが反応している
- 12. はネイティブリアクト - 「反応するネイティブ・interface.jsを」 - WebStormが反応し、ネイティブの場合
- 13. 反応するネイティブのみ
- 14. エラー "反応するネイティブの
- 15. 反応ネイティブでTabNavigator内でリスト数を追加する方法
- 16. 反応ネイティブ(0.49)
- 17. スプラッシュスクリーン反応ネイティブ
- 18. 反応し、ネイティブ
- 19. 反応し、ネイティブ
- 20. 反応:ネイティブ:フレックスボックスアラインメント
- 21. フィルターアレイの反応ネイティブ
- 22. 反応ネイティブのモーダルボトムメニュー
- 23. 反応ネイティブのマルチスレッド
- 24. は、ネイティブの反応 -
- 25. 反応ネイティブのアニメーションサブメニュー
- 26. ネイティブに反応するネイティブ0.49
- 27. が反応し、ネイティブbuildToolsVersion 24
- 28. ゲットマーカーオープンリンクGoogleマップが反応ネイティブ
- 29. [反応ネイティブ] height`が `View`
- 30. は反応するネイティブ