React Native中TabBarIOS的簡(jiǎn)單使用方法示例
前言
大家應(yīng)該都知道,TabBarIOS是RN中自帶的組件,可直接使用,不用引用第三方組件,下面講解TabBarIOS的使用方法,話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
首先看一下效果圖,如下圖所示:

效果圖
看完效果圖再對(duì)代碼進(jìn)行說(shuō)明.
import React, { Component } from 'react';
import {
StyleSheet,
View,
TabBarIOS,
NavigatorIOS,
Navigator,
AppRegistry,
Image,
TouchableHighlight,
Platform,
} from 'react-native';
//首先導(dǎo)入需要的組件
import Home from './home';
import About from './about';
import Manager from './manager';
import Message from './message';
//這里是導(dǎo)入需要顯示的頁(yè)面
export default class Test extends Component {
constructor(props){
super(props);
this.state = {
selectedTab:'home',
data:'',
isLoadingShow: false,
title:'首頁(yè)',
};
}
//設(shè)置一個(gè)初始化默認(rèn)首先顯示首頁(yè)
componentDidMount() {
console.log("++++++++++++++++TabBarIOS測(cè)試+++++++++++++++");
}
_selectTab(tabName) {
this.setState({
selectedTab: tabName
});
}
//修改底部Tab名稱(chēng),通過(guò)狀態(tài)進(jìn)行控制
_selectTitle(title) {
this.setState({
title: title
});
}
//修改頂部導(dǎo)航欄的名稱(chēng),與Tab名稱(chēng)的修改是同步的
_addNavigator(component, title) {
let data = null;
if(title === '公告'){
data = this.state.data;
}
return <NavigatorIOS
style={{flex:1}}
barTintColor='#007AFF'
titleTextColor="#fff"
tintColor="#fff"
translucent={false}
initialRoute={{
component,
title,
passProps:{
data
}
}}
/>;
}
//這里定義了一個(gè)_addNavigator方法,接收兩個(gè)參數(shù)頁(yè)面名稱(chēng)與導(dǎo)航欄title
_mainJudge(){
return(
<View style={{flex:1}}>
<TabBarIOS barTintColor="#FFF">
<TabBarIOS.Item
icon={require('../imgs/phone_s.png')}
title="首頁(yè)"
selected={this.state.selectedTab === 'home'}
onPress={this._selectTab.bind(this, 'home')}
>
{this._addNavigator(Home, '首頁(yè)')}
</TabBarIOS.Item>
<TabBarIOS.Item
title="公告"
icon={require('../imgs/gonggao.png')}
selected={this.state.selectedTab === 'message'}
onPress={this._selectTab.bind(this, 'message')}
>
{this._addNavigator(Message, '公告')}
</TabBarIOS.Item>
<TabBarIOS.Item
title="管理"
icon={require('../imgs/manager.png')}
selected={this.state.selectedTab === 'manager'}
onPress={this._selectTab.bind(this, 'manager')}
>
{this._addNavigator(Manager, '管理')}
</TabBarIOS.Item>
<TabBarIOS.Item
title="關(guān)于"
icon={require('../imgs/about.png')}
selected={this.state.selectedTab === 'about'}
onPress={this._selectTab.bind(this, 'about')}
>
{this._addNavigator(About, '關(guān)于')}
</TabBarIOS.Item>
</TabBarIOS>
</View>
)
}
//_mainJudge方法是最核心的方法,用于對(duì)底部Tab以及頂部Title的布局,其中調(diào)用了幾個(gè)方法上面已經(jīng)做了說(shuō)明.
render() {
return (
<View style={styles.container}>
{this._mainJudge()}
</View>
);
}
}
const styles = StyleSheet.create({
container:{
flex:1,
opacity:1
},
});
如圖所示,導(dǎo)入的import Manager from './manager';Manager頁(yè)面的內(nèi)容就會(huì)顯示在頁(yè)面,其余頁(yè)面也是同樣的道理.

頁(yè)面填充效果圖
通常進(jìn)入這樣一個(gè)頁(yè)面都是從登陸頁(yè)面跳轉(zhuǎn)到此頁(yè)面,或者作為一個(gè)子頁(yè)面呈現(xiàn).另一個(gè)好處就是,拿我的項(xiàng)目為例,點(diǎn)擊修改密碼,顯示如下圖所示:

內(nèi)頁(yè)效果圖
你會(huì)看到管理會(huì)自動(dòng)移到左邊,title修改為修改密碼.就避免了,每個(gè)頁(yè)面都需要定義一個(gè)導(dǎo)航欄產(chǎn)生的冗余代碼.
如果你想自己完成這樣的效果,你只需新建一個(gè)項(xiàng)目,新增一個(gè)頁(yè)面,將我的代碼拷貝進(jìn)去即可,注意:我import了四個(gè)頁(yè)面,這個(gè)也需要你自己定義,可簡(jiǎn)單創(chuàng)建幾個(gè)頁(yè)面嘗試.
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
React倒計(jì)時(shí)功能實(shí)現(xiàn)代碼——解耦通用
這篇文章主要介紹了React倒計(jì)時(shí)功能實(shí)現(xiàn)——解耦通用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
教你使用vscode 搭建react-native開(kāi)發(fā)環(huán)境
本文記錄如何使用vscode打造一個(gè)現(xiàn)代化的react-native開(kāi)發(fā)環(huán)境,旨在提高開(kāi)發(fā)效率和質(zhì)量。本文給大家分享我遇到的問(wèn)題及解決方法,感興趣的朋友跟隨小編一起看看吧2021-07-07
一文教會(huì)你用redux實(shí)現(xiàn)computed計(jì)算屬性
在computed中,可以定義一些屬性,即計(jì)算屬性,下面這篇文章主要給大家介紹了關(guān)于如何利用redux實(shí)現(xiàn)computed計(jì)算屬性的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
React Hooks: useEffect()調(diào)用了兩次問(wèn)題分析
這篇文章主要為大家介紹了React Hooks: useEffect()調(diào)用了兩次問(wèn)題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
react反向代理使用http-proxy-middleware問(wèn)題
這篇文章主要介紹了react反向代理使用http-proxy-middleware問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
forwardRef?中React父組件控制子組件的實(shí)現(xiàn)代碼
forwardRef 用于拿到父組件傳入的 ref 屬性,這樣在父組件便能通過(guò) ref 控制子組件,這篇文章主要介紹了forwardRef?-?React父組件控制子組件的實(shí)現(xiàn)代碼,需要的朋友可以參考下2024-01-01

