最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

React Native使用Modal自定义分享界面的示例代码

来源:懂视网 责编:小采 时间:2020-11-27 22:26:33
文档

React Native使用Modal自定义分享界面的示例代码

React Native使用Modal自定义分享界面的示例代码:在很多App中都会涉及到分享,React Native提供了Modal组件用来实现一些模态弹窗,例如加载进度框,分享弹框等。使用Modal搭建分析的效果如下: 自定义的分析界面代码如下: ShareAlertDialog.js /** * https://github.com/
推荐度:
导读React Native使用Modal自定义分享界面的示例代码:在很多App中都会涉及到分享,React Native提供了Modal组件用来实现一些模态弹窗,例如加载进度框,分享弹框等。使用Modal搭建分析的效果如下: 自定义的分析界面代码如下: ShareAlertDialog.js /** * https://github.com/

在很多App中都会涉及到分享,React Native提供了Modal组件用来实现一些模态弹窗,例如加载进度框,分享弹框等。使用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}/>

文档

React Native使用Modal自定义分享界面的示例代码

React Native使用Modal自定义分享界面的示例代码:在很多App中都会涉及到分享,React Native提供了Modal组件用来实现一些模态弹窗,例如加载进度框,分享弹框等。使用Modal搭建分析的效果如下: 自定义的分析界面代码如下: ShareAlertDialog.js /** * https://github.com/
推荐度:
标签: 自定义 界面 React
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top