React-Native 元件之 Modal的使用詳解
Modal元件可以用來覆蓋包含React Native根檢視的原生檢視(如UIViewController,Activity),用它可以實現遮罩的效果。
屬性
Modal提供的屬性有:
animationType(動畫型別) PropTypes.oneOf([‘none’, ‘slide’, ‘fade’]
- none:沒有動畫
- slide:從底部滑入
- fade:淡入視野
onRequestClose(被銷燬時會呼叫此函式)
- 在 ‘Android’ 平臺,必需呼叫此函式
onShow(模態顯示的時候被呼叫)
transparent (透明度) bool
- 為true時,使用透明背景渲染模態。
visible(可見性)
onOrientationChange(方向改變時呼叫)
- 在模態方向變化時呼叫,提供的方向只是 ” 或 ”。在初始化渲染的時候也會呼叫,但是不考慮當前方向。
supportedOrientations(允許模態旋轉到任何指定取向)[‘portrait’, ‘portrait-upside-down’, ‘landscape’,’landscape-left’,’landscape-right’])
- 在iOS上,模態仍然受 info.plist 中的 UISupportedInterfaceOrientations欄位中指定的限制。
示例
Modal的使用非常簡單,例如:
<Modal
animationType='slide' // 從底部滑入
transparent={false} // 不透明
visible={this.state.isModal} // 根據isModal決定是否顯示
onRequestClose={() => {this.onRequestClose()}} // android必須實現
>
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
綜合例子:
import React, { Component} from 'react';
import {
AppRegistry,
View,
Modal,
TouchableOpacity,
Text
} from 'react-native' ;
export default class ModalView extends Component {
constructor(props) {
super(props);
this.state = {
modalVisible: false,
}
}
setModalVisible = (visible)=> {
this.setState({
modalVisible: visible
})
};
render(){
return(
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#ffaaff'}}>
<Modal animationType={'none'}
transparent={true}
visible={this.state.modalVisible}
onrequestclose={() => {alert("Modal has been closed.")}}
onShow={() => {alert("Modal has been open.")}}
supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}
onOrientationChange={() => {alert("Modal has been OrientationChange.")}}>
<View style={{flex:1, marginTop: 22, backgroundColor: '#aaaaaa', justifyContent: 'center', alignItems: 'center'}}>
<View>
<Text>Hello World!</Text>
<TouchableOpacity onPress={() => {
this.setModalVisible(false)
}}>
<Text>隱藏 Modal</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
<TouchableOpacity onPress={() => {
this.setModalVisible(true)
}}>
<Text>顯示 Modal</Text>
</TouchableOpacity>
</View>
)
}
}
AppRegistry.registerComponent('ModalView', ()=>ModalView);
執行效果:
從 modal 的原始碼可以看出,modal 其實就是使用了 絕對定位,所以當 modal 無法滿足我們的需求的時候,我們就可以通過 絕對定位 自己來封裝一個 modal
相關推薦
React-Native 元件之 Modal的使用詳解
Modal元件可以用來覆蓋包含React Native根檢視的原生檢視(如UIViewController,Activity),用它可以實現遮罩的效果。 屬性 Modal提供的屬性有: animationType(動畫型別) PropTypes.oneOf([‘none’, ‘slide’, ‘fade’]
React Native 控制元件之 Modal 詳解
今天我們來看一下React Native控制元件Modal具體介紹以及實際使用方法,該適配Android、iOS雙平臺。 剛建立的React Native技術交流4群( 458982758 ),歡迎各位大牛,React Native技術愛好者加入交流!同時部落格右側歡迎
React Native的props使用詳解
static rip ng- ont nts -m https oot ner 普通傳參 傳遞 export default class App extends Component<> { constructor() { super(
React Native的state使用詳解
red 什麽 style data return javascrip ets pre fault 什麽是State props是不可改變,只讀的。為了實現交互,就需要用到組件的state。我們將組件看為狀態機,UI是各種各樣的狀態,並在各種各樣的狀態之間可以切換,只需要改
深入React技術棧之setState詳解
丟擲問題 class Example extends Component { contructor () { super() this.state = { value: 0, index: 0 } } componentDidMount ()
Android四大元件之ContentProvider詳解
1.適用場景 1) ContentProvider為儲存和讀取資料提供了統一的介面 2) 使用ContentProvider,應用程式可以實現資料共享 3) android內建的許多資料都是使用ContentProvider形式,供開發者呼叫的(如視訊,音訊,圖片,
Android四大元件之Activity詳解
一、Activity的生命週期: import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { /*建立Activity時被
Android 四大元件之---Activity 詳解
Android Activity生命週期詳解 1. 什麼是Activity? Activity作為Android四大元件之一,它有著舉足輕重的地位,每一個Activity都會獲得一個用於繪製其使用者介面的視窗,Activity是一個v
安卓四大控制元件之BroadcastReceiver詳解
BroadcastReceiver詳解 廣播的概念 Android:系統在產生某個事件時傳送廣播,應用程式使用廣播接收者接收這個廣播,就知道系統產生了什麼事件。 Android系統在執行的過程中,會產生很多事件,比如開機、電量改變、收發簡訊、撥打電話、螢
react-native-scrollable-tab-view詳解
原文連結 在React Native開發中,官方為我們提供的Tab控制器有兩種:TabBarIOS和ViewPagerAndroid。TabBarIOS,僅適用於IOS平臺 ViewPagerAndroid,僅適用於Android平臺(嚴格來講並不算,因為我們還需要自己
[深入剖析React Native]React Native元件之Touchable*
Touchable*系列元件封裝了觸控點選的相關事件,比如:觸控、點選、長按、反饋等,官方提供Touchable*系列元件包括四種: TouchableHighlight TouchableNativeFeedback TouchableOpacity To
React Native元件之Button
不管在Android還是ios開發中,系統都有Button元件,而在早期的React Native中,系統是不提供Button元件的,一般會使用一個叫做react-native-button的庫。 Button元件 Button元件其實就是 Toucha
React Native和Android整合詳解
前言 按照React Native的迭代速度,使用官網的文件,已經不能很順利的實現React Native和Android的有效整合。React Native最新版本 已經是0.39。為了更好的講解React Native和Android的整合我這裡列出我本地
react-native 呼叫原生模組詳解
一,繼承 ReactContextBaseJavaModule 實現如下方法 自定義方法用 @ReactMethod註釋 /** * 日誌列印module * Created by ybj on 2016/2/26.
React Native 元件之Image
Image元件類似於iOS中UIImage控制元件,該元件可以通過多種方式載入圖片資源。 使用方式,載入方式有如下幾種: /** * Sample React Native App * https://github.com/facebook/react-native * 周少停 * image
react-native-router-flux 使用詳解(三)
我們主要進一步介紹了react-native-router-flux的使用,接下來主要講解 其主要配置引數和api,當前我主要是翻譯官網的學習資料進行學習,我將在後面的章節中實際使用他,通關編寫一個rn版的微博app http://www.cherylgood.cn
React Native元件之VirtualizedList
React Native(簡稱RN)列表是基於ScrollView實現的,也就是可以滾動的,然而RN並沒有直接使用IOS或Android的原生列表元件,這是因為RN真正呼叫native程式碼的過程是非同步的,二Native的渲染要求必須同步渲染的。 在早期版本
react native TextInput各個引數詳解,內含事例動圖
TextInput 文字輸入框 React Native中的文字輸入框使用和iOS比較相近,可能是因為 RN 首先封裝iOS端的緣故(這點對iOS開發者來說是個好訊息) TextInput也是繼承自 View,所以 View 的屬性 TextInput 也能使用,一些樣式類
(十二)React-Native-生命週期詳解
一.React-Native生命週期 說到生命週期,大家大概也能想到就是建立、銷燬、狀態改變。RN的元件就是一個狀態機。它接收兩個輸入引數:props和state,返回一個Virtual DOM。和Native一樣,RN也為我們提供相應的鉤子函式。RN的狀態變化取決於pr
[深入剖析React Native]React Native元件之Navigator
1.簡介 導航元件Navigator可以讓app在不同頁面進行切換。為達到這樣的功能,Navigator提供了路由物件功能進行區分每個頁面。 我們可以通過renderScene方法,Navaigator根據指定的路由進行渲染指定的介面。 除了以上功能之外,