国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

React Native使用Modal自定義分享界面的示例代碼

2019-11-19 15:01:05
字體:
供稿:網(wǎng)友

在很多App中都會(huì)涉及到分享,React Native提供了Modal組件用來實(shí)現(xiàn)一些模態(tài)彈窗,例如加載進(jìn)度框,分享彈框等。使用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  },});

當(dāng)點(diǎn)擊某個(gè)按鈕之后,就會(huì)彈出框,示例代碼如下:

constructor(props) {    super(props);    this.state = {      showSharePop: false,//分享彈窗,默認(rèn)不顯示    }  }//省略onSharePress() {    this.setState({showSharePop: !this.state.showSharePop})  }//增加點(diǎn)擊<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}/>

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金湖县| 察隅县| 都兰县| 麻栗坡县| 旌德县| 通化市| 辉县市| 江达县| 常州市| 福安市| 韶关市| 同德县| 徐水县| 灵台县| 大埔区| 上虞市| 揭阳市| 南岸区| 澄城县| 青川县| 昭苏县| 靖远县| 抚顺县| 怀仁县| 八宿县| 余姚市| 龙州县| 淮滨县| 江西省| 睢宁县| 定西市| 通许县| 阿尔山市| 精河县| 铜山县| 武邑县| 敦煌市| 南丹县| 吴川市| 灵山县| 城步|