react-native
モーダル
サーチ…
前書き
モーダルコンポーネントは、コンテンツを囲むビューの上に表示する簡単な方法です。
パラメーター
プロップ | 詳細 |
---|---|
アニメーションタイプ | それはenumの( ' none '、 ' slide '、 ' fade ')であり、モーダルアニメーションをコントロールします。 |
目に見える | モーダルの可視性を制御するブールです。 |
onShow | モーダルが表示されたら呼び出される関数を渡すことができます。 |
トランスペアレント | 透明度を設定するbool。 |
onRequestClose( android ) | ユーザーがタブを後ろに戻すときに呼び出されるメソッドを常に定義します |
onOrientationChange( IOS ) | オリエンテーションが変更されたときに呼び出されるメソッドを常に定義します |
supportedOrientations( IOS ) | 列挙型( 'ポートレート'、 'ポートレート - 上下逆'、 '風景'、 '風景 - 左'、 '風景 - 右') |
モーダル基本例
import React, { Component } from 'react';
import {
Modal,
Text,
View,
Button,
StyleSheet,
} from 'react-native';
const styles = StyleSheet.create({
mainContainer: {
marginTop: 22,
},
modalContainer: {
marginTop: 22,
},
});
class Example extends Component {
constructor() {
super();
this.state = {
visibility: false,
};
}
setModalVisibility(visible) {
this.setState({
visibility: visible,
});
}
render() {
return (
<View style={styles.mainContainer}>
<Modal
animationType={'slide'}
transparent={false}
visible={this.state.visibility}
>
<View style={styles.modalContainer}>
<View>
<Text>I'm a simple Modal</Text>
<Button
color="#000"
onPress={() => this.setModalVisibility(!this.state.visibility)}
title="Hide Modal"
/>
</View>
</View>
</Modal>
<Button
color="#000"
onPress={() => this.setModalVisibility(true)}
title="Show Modal"
/>
</View>
);
}
}
export default Example;
透過モーダルの例
ここの例を参照してください。
import React, { Component } from 'react';
import { Text, View, StyleSheet, Button, Modal } from 'react-native';
import { Constants } from 'expo';
export default class App extends Component {
state = {
modalVisible: false,
};
_handleButtonPress = () => {
this.setModalVisible(true);
};
setModalVisible = (visible) => {
this.setState({modalVisible: visible});
}
render() {
var modalBackgroundStyle = {
backgroundColor: 'rgba(0, 0, 0, 0.5)'
};
var innerContainerTransparentStyle = {backgroundColor: '#fff', padding: 20};
return (
<View style={styles.container}>
<Modal
animationType='fade'
transparent={true}
visible={this.state.modalVisible}
onRequestClose={() => this.setModalVisible(false)}
>
<View style={[styles.container, modalBackgroundStyle]}>
<View style={innerContainerTransparentStyle}>
<Text>This is a modal</Text>
<Button title='close'
onPress={this.setModalVisible.bind(this, false)}/>
</View>
</View>
</Modal>
<Button
title="Press me"
onPress={this._handleButtonPress}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
paddingTop: Constants.statusBarHeight,
backgroundColor: '#ecf0f1',
}
});
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow