React Native 는 Modal 사용자 정의 공유 인터페이스의 예제 코드 를 사용 합 니 다.
사용자 정의 분석 인터페이스 코드 는 다음 과 같 습 니 다.
ShareAlertDialog.js
/**
* https://github.com/facebook/react-native
* @flow
*/
import React, {Component} from 'react';
import {View, TouchableOpacity, Alert,StyleSheet, Dimensions, Modal, Text, Image} from 'react-native';
import Separator from "./Separator";
const {width, height} = Dimensions.get('window');
const dialogH = 110;
export default class ShareAlertDialog extends Component {
constructor(props) {
super(props);
this.state = {
isVisible: this.props.show,
};
}
componentWillReceiveProps(nextProps) {
this.setState({isVisible: nextProps.show});
}
closeModal() {
this.setState({
isVisible: false
});
this.props.closeModal(false);
}
renderDialog() {
return (
<View style={styles.modalStyle}>
<Text style={styles.text}> </Text>
<Separator/>
<View style={{flex: 1, flexDirection: 'row', marginTop: 15}}>
<TouchableOpacity style={styles.item} onPress={() => Alert.alert(' ')}>
<Image resizeMode='contain' style={styles.image}
source={require('../images/share_ic_friends.png')}/>
<Text> </Text>
</TouchableOpacity>
<TouchableOpacity style={styles.item}>
<Image resizeMode='contain' style={styles.image}
source={require('../images/share_ic_weixin.png')}/>
<Text> </Text>
</TouchableOpacity>
<TouchableOpacity style={styles.item}>
<Image resizeMode='contain' style={styles.image}
source={require('../images/share_ic_weibo.png')}/>
<Text> </Text>
</TouchableOpacity>
</View>
</View>
)
}
render() {
return (
<View style={{flex: 1}}>
<Modal
transparent={true}
visible={this.state.isVisible}
animationType={'fade'}
onRequestClose={() => this.closeModal()}>
<TouchableOpacity style={styles.container} activeOpacity={1}
onPress={() => this.closeModal()}>
{this.renderDialog()}
</TouchableOpacity>
</Modal>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'rgba(0, 0, 0, 0.5)',
},
modalStyle: {
position: "absolute",
top: height - 170,
left: 0,
width: width,
height: dialogH,
backgroundColor: '#ffffff'
},
subView: {
width: width,
height: dialogH,
backgroundColor: '#ffffff'
},
text: {
flex: 1,
fontSize: 18,
margin: 10,
justifyContent: 'center',
alignItems: 'center',
alignSelf: 'center'
},
item: {
width: width / 3,
height: 100,
alignItems: 'center',
backgroundColor: '#ffffff'
},
image: {
width: 60,
height: 60,
marginBottom: 8
},
});
어떤 단 추 를 누 르 면 상자 가 팝 업 됩 니 다.예제 코드 는 다음 과 같 습 니 다.
constructor(props) {
super(props);
this.state = {
showSharePop: false,// ,
}
}
//
onSharePress() {
this.setState({showSharePop: !this.state.showSharePop})
}
//
<NavigationBar
navigator={this.props.navigator}
popEnabled={false}
style={{backgroundColor: "transparent", position: "absolute", top: 0, width}}
leftButton={ViewUtils.getLeftButton(() => this.props.navigator.pop())}
rightButton={ViewUtils.getShareButton(() => this.onSharePress())}/>
// ShareAlertDialog
<ShareAlertDialog show={this.state.showSharePop} closeModal={(show) => {
this.setState({showSharePop: show})
}} {...this.props}/>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바삭바삭하고 간단한 결제 페이지 만들기먼저 Next.js에서 프로젝트를 만듭니다. Vercel & Next.js가 매우 편하기 때문에 최근에는이 구성을 사용하고 있습니다. 그런 다음 Tailwind CSS를 넣습니다. Tailwind CSS를 사용하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.