中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React Native之Modal控件如何自定義彈出View

發布時間:2021-08-21 14:32:36 來源:億速云 閱讀:158 作者:小新 欄目:移動開發

這篇文章主要介紹React Native之Modal控件如何自定義彈出View,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

前言

Modal組件可以用來覆蓋包含React Native根視圖的原生視圖(如UIViewController,Activity)。

在嵌入React Native的混合應用中可以使用Modal。Modal可以使你應用中RN編寫的那部分內容覆蓋在原生視圖上顯示。

下面是代碼:

// HomePage 
// 功能: 該類的作用 
// Created by 小廣 on 2016-06-12 上午. 
// Copyright © 2016年 All rights reserved. 
 
'use strict'; 
import React, { Component } from 'react'; 
import { 
 View, 
 Text, 
 Image, 
 Modal, 
 Navigator, 
 TextInput, 
 ScrollView, 
 StyleSheet, 
 Dimensions, 
 TouchableHighlight, 
} from 'react-native'; 
import NavigatorBar from '../tools/navigator' 
var { width, height, scale } = Dimensions.get('window'); 
// 類 
export default class HomePage extends Component { 
 // 構造函數 
 constructor(props) { 
 super(props); 
 this.state = { 
  show:false, 
 }; 
 } 
 
 // 加載完成 
 componentDidMount(){ 
 // 
 } 
 
 // view卸載 
 componentWillUnmount(){ 
 // 
 } 
 
 // 自定義方法區域 
 // your method 
 _leftButtonClick() { 
 
 } 
 _rightButtonClick() { 
 // 
 console.log('右側按鈕點擊了'); 
 this._setModalVisible(); 
 } 
 
 // 顯示/隱藏 modal 
 _setModalVisible() { 
 let isShow = this.state.show; 
 this.setState({ 
  show:!isShow, 
 }); 
 } 
 
 // 繪制View 
 render() { 
  return ( 
  <View style={styles.container}> 
   <NavigatorBar 
   title='Modal測試' 
   titleTextColor='#F2380A' 
   rightItemTitle='按鈕' 
   rightTextColor='#F2380A' 
   rightItemFunc={this._rightButtonClick.bind(this)} /> 
   <Modal 
   animationType='slide' 
   transparent={true} 
   visible={this.state.show} 
   onShow={() => {}} 
   onRequestClose={() => {}} > 
   <View style={styles.modalStyle}> 
    <View style={styles.subView}> 
    <Text style={styles.titleText}> 
     提示 
    </Text> 
    <Text style={styles.contentText}> 
     Modal顯示的View 多行了超出一行了會怎么顯示,就像這樣顯示了很多內容該怎么顯示,看看效果 
    </Text> 
    <View style={styles.horizontalLine} /> 
    <View style={styles.buttonView}> 
     <TouchableHighlight underlayColor='transparent' 
     style={styles.buttonStyle} 
     onPress={this._setModalVisible.bind(this)}> 
     <Text style={styles.buttonText}> 
      取消 
     </Text> 
     </TouchableHighlight> 
     <View style={styles.verticalLine} /> 
     <TouchableHighlight underlayColor='transparent' 
     style={styles.buttonStyle} 
     onPress={this._setModalVisible.bind(this)}> 
     <Text style={styles.buttonText}> 
      確定 
     </Text> 
     </TouchableHighlight> 
    </View> 
    </View> 
   </View> 
  </Modal> 
  </View> 
  ); 
 } 
 
} 
// Modal屬性 
// 1.animationType bool 控制是否帶有動畫效果 
// 2.onRequestClose Platform.OS==='android'? PropTypes.func.isRequired : PropTypes.func 
// 3.onShow function方法 
// 4.transparent bool 控制是否帶有透明效果 
// 5.visible bool 控制是否顯示 
 
// css樣式 
var styles = StyleSheet.create({ 
 container:{ 
 flex:1, 
 backgroundColor: '#ECECF0', 
 }, 
 // modal的樣式 
 modalStyle: { 
 // backgroundColor:'#ccc', 
 alignItems: 'center', 
 justifyContent:'center', 
 flex:1, 
 }, 
 // modal上子View的樣式 
 subView:{ 
 marginLeft:60, 
 marginRight:60, 
 backgroundColor:'#fff', 
 alignSelf: 'stretch', 
 justifyContent:'center', 
 borderRadius: 10, 
 borderWidth: 0.5, 
 borderColor:'#ccc', 
 }, 
 // 標題 
 titleText:{ 
 marginTop:10, 
 marginBottom:5, 
 fontSize:16, 
 fontWeight:'bold', 
 textAlign:'center', 
 }, 
 // 內容 
 contentText:{ 
 margin:8, 
 fontSize:14, 
 textAlign:'center', 
 }, 
 // 水平的分割線 
 horizontalLine:{ 
 marginTop:5, 
 height:0.5, 
 backgroundColor:'#ccc', 
 }, 
 // 按鈕 
 buttonView:{ 
 flexDirection: 'row', 
 alignItems: 'center', 
 }, 
 buttonStyle:{ 
 flex:1, 
 height:44, 
 alignItems: 'center', 
 justifyContent:'center', 
 }, 
 // 豎直的分割線 
 verticalLine:{ 
 width:0.5, 
 height:44, 
 backgroundColor:'#ccc', 
 }, 
 buttonText:{ 
 fontSize:16, 
 color:'#3393F2', 
 textAlign:'center', 
 }, 
});

注意:NavigatorBar是我自定義的一個View,充當導航條,你可以將其換成一個按鈕就行了;

效果如圖:

React Native之Modal控件如何自定義彈出View

以上是“React Native之Modal控件如何自定義彈出View”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广州市| 阿拉善右旗| 酒泉市| 岳阳县| 错那县| 沁源县| 漾濞| 察雅县| 贞丰县| 北碚区| 许昌县| 吉水县| 山西省| 云浮市| 涡阳县| 大埔区| 西贡区| 嵊泗县| 柞水县| 河北省| 应城市| 和平县| 西和县| 无为县| 凭祥市| 辛集市| 长子县| 南京市| 敦化市| 汕尾市| 湘乡市| 丹阳市| 麦盖提县| 乃东县| 沁阳市| 新昌县| 宕昌县| 瑞昌市| 黎城县| 黔西县| 柳河县|