React Native中TabBarIOS的简单使用方法示例

网友投稿 280 2023-03-27


React Native中TabBarIOS的简单使用方法示例

前言

大家应该都知道,TabBarIOS是RN中自带的组件,可直接使用,不用引用第三方组件,下面讲解TabBarIOS的使用方法,话不多说了,来一起看看详细的介绍吧。

首先看一下效果图,如下图所示:

看完效果图再对代码进行说明.

import React, { Component } from 'react';

import {

StyleSheet,

View,

TabBarIOS,

NavigatorIOS,

Navigator,

AppRegistry,

Image,

TouchableHighlight,

Platform,

} from 'react-native';

//首先导入需要的组件

import Home from './home';

import About from './about';

import Manager from './manager';

import Message from './message';

//这里是导入需要显示的页面

export default class Test extends Component {

constructor(props){

super(props);

this.state = {

selectedTab:'home',

data:'',

isLoadingShow: false,

title:'首页',

};

}

//设置一个初始化默认首先显示首页

componentDidMount() {

console.log("++++++++++++++++TabBarIOS测试+++++++++++++++");

}

_selectTab(tabName) {

this.shttp://etState({

selectedTab: tabName

});

}

//修改底部Tab名称,通过状态进行控制

_selectTitle(title) {

this.setState({

title: title

});

}

//修改顶部导航栏的名称,与Tab名称的修改是同步的

_addNavigator(component, title) {

let data = null;

if(title === '公告'){

data = this.state.data;

}

return

style={{flex:1}}

barTintColor='#007AFF'

titleTextColor="#fff"

tintColor="#fff"

translucent={false}

initialRoute={{

component,

title,

passProps:{

data

}

}}

/>;

}

//这里定义了一个_addNavigator方法,接收两个参数页面名称与导航栏title

_mainJudge(){

return(

icon={require('../imgs/phone_s.png')}

title="首页"

selected={this.state.selectedTab === 'home'}

onPress={this._selectTab.bind(this, 'home')}

>

{this._addNavigator(Home, '首页')}

title="公告"

icon={require('../imgs/gonggao.png')}

selected={this.state.selectedTab === 'message'}

onPress={this._selectTab.bind(this, 'message')}

>

{this._addNavigator(Message, '公告')}

title="管理"

icon={require('../imgs/manager.png')}

selected={this.state.selectedTab === 'manager'}

onPress={this._selectTab.bind(this, 'manager')}

>

{this._addNavigator(Manager, '管理')}

title="关于"

icon={require('../imgs/about.png')}

selected={this.state.selectedTab === 'about'}

onPress={this._selectTab.bind(this, 'about')}

>

{this._addNavigator(About, '关于')}

)

}

//_mainJudge方法是最核心的方法,用于对底部Tab以及顶部Title的布局,其中调用了几个方法上面已经做了说明.

render() {

return (

{this._mainJudge()}

);

}

}

const styles = StyleSheet.create({

container:{

flex:1,

opacity:1

},

});

如图所示,导入的import Manager from './manager';Manager页面的内容就会显示在页面,其余页面也是同样的道理.

通常进入这样一个页面都是从登陆页面跳转到此页面,或者作为一个子页面呈现.另一个好处就是,拿我的项目为例,点击修改密码,显示如下图所示:

你会看到管理会自动移到左边,title修改为修改密码.就避免了,每个页面都需要定义一个导航栏产生的冗余代码.

如果你想自己完成这样的效果,你只需新建一个项目,新增一个页面,将我的代码拷贝进去即可,注意:我import了四个页面,这个也需要你自己定义,可简单创建几个页面尝试.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

style={{flex:1}}

barTintColor='#007AFF'

titleTextColor="#fff"

tintColor="#fff"

translucent={false}

initialRoute={{

component,

title,

passProps:{

data

}

}}

/>;

}

//这里定义了一个_addNavigator方法,接收两个参数页面名称与导航栏title

_mainJudge(){

return(

icon={require('../imgs/phone_s.png')}

title="首页"

selected={this.state.selectedTab === 'home'}

onPress={this._selectTab.bind(this, 'home')}

>

{this._addNavigator(Home, '首页')}

icon={require('../imgs/phone_s.png')}

title="首页"

selected={this.state.selectedTab === 'home'}

onPress={this._selectTab.bind(this, 'home')}

>

{this._addNavigator(Home, '首页')}

title="公告"

icon={require('../imgs/gonggao.png')}

selected={this.state.selectedTab === 'message'}

onPress={this._selectTab.bind(this, 'message')}

>

{this._addNavigator(Message, '公告')}

title="公告"

icon={require('../imgs/gonggao.png')}

selected={this.state.selectedTab === 'message'}

onPress={this._selectTab.bind(this, 'message')}

>

{this._addNavigator(Message, '公告')}

title="管理"

icon={require('../imgs/manager.png')}

selected={this.state.selectedTab === 'manager'}

onPress={this._selectTab.bind(this, 'manager')}

>

{this._addNavigator(Manager, '管理')}

title="管理"

icon={require('../imgs/manager.png')}

selected={this.state.selectedTab === 'manager'}

onPress={this._selectTab.bind(this, 'manager')}

>

{this._addNavigator(Manager, '管理')}

title="关于"

icon={require('../imgs/about.png')}

selected={this.state.selectedTab === 'about'}

onPress={this._selectTab.bind(this, 'about')}

>

{this._addNavigator(About, '关于')}

title="关于"

icon={require('../imgs/about.png')}

selected={this.state.selectedTab === 'about'}

onPress={this._selectTab.bind(this, 'about')}

>

{this._addNavigator(About, '关于')}

)

}

//_mainJudge方法是最核心的方法,用于对底部Tab以及顶部Title的布局,其中调用了几个方法上面已经做了说明.

render() {

return (

{this._mainJudge()}

);

}

}

const styles = StyleSheet.create({

container:{

flex:1,

opacity:1

},

});

如图所示,导入的import Manager from './manager';Manager页面的内容就会显示在页面,其余页面也是同样的道理.

通常进入这样一个页面都是从登陆页面跳转到此页面,或者作为一个子页面呈现.另一个好处就是,拿我的项目为例,点击修改密码,显示如下图所示:

你会看到管理会自动移到左边,title修改为修改密码.就避免了,每个页面都需要定义一个导航栏产生的冗余代码.

如果你想自己完成这样的效果,你只需新建一个项目,新增一个页面,将我的代码拷贝进去即可,注意:我import了四个页面,这个也需要你自己定义,可简单创建几个页面尝试.

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Proxy机制详细解读
下一篇:接口测试用例实例分析(接口的测试用例一般都怎么写)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~