TabBar 标签栏
位于 APP 底部,方便用户在不同功能模块之间进行快速切换。规则
用作 APP 的一级分类,数量控制在 3-5 个之间。
即使某个 Tab 不可用,也不要禁用或者移除该 Tab。
使用 Badge 进行提示,足不出户也能知道有内容更新。
代码演示
多用于页面的内容区块,起着控制小范围内的大块内容的分组和隐藏,起着保持界面整洁的作用。
import { TabBar } from 'antd-mobile';
/* eslint global-require: 0 */
const TabBarExample = React.createClass({
getInitialState() {
return {
selectedTab: 'redTab',
hidden: false,
};
},
renderContent(pageText) {
return (
<div style={{ backgroundColor: 'white', height: '100%', textAlign: 'center' }}>
<div style={{ paddingTop: 60 }}>你已点击“{pageText}” tab, 当前展示“{pageText}”信息</div>
<a style={{ display: 'block', marginTop: 40 }} onClick={(e) => {
e.preventDefault();
this.setState({
hidden: !this.state.hidden,
});
}}
>
点击切换 tab-bar 显示/隐藏
</a>
</div>
);
},
render() {
return (
<TabBar
unselectedTintColor="#949494"
tintColor="#33A3F4"
barTintColor="white"
hidden={this.state.hidden}
>
<TabBar.Item
title="生活"
key="生活"
icon={require('./alipay_web.png')}
selectedIcon={require('./alipay_web_sel.png')}
selected={this.state.selectedTab === 'blueTab'}
badge={1}
onPress={() => {
this.setState({
selectedTab: 'blueTab',
});
}}
data-seed="logId"
>
{this.renderContent('生活')}
</TabBar.Item>
<TabBar.Item
icon={{ uri: 'https://zos.alipayobjects.com/rmsportal/UNQhIatjpNZHjVf.png' }}
selectedIcon={{ uri: 'https://zos.alipayobjects.com/rmsportal/HLkBvJOKnmOfBPO.png' }}
title="口碑"
key="口碑"
selected={this.state.selectedTab === 'redTab'}
onPress={() => {
this.setState({
selectedTab: 'redTab',
});
}}
data-seed="logId1"
>
{this.renderContent('口碑')}
</TabBar.Item>
<TabBar.Item
icon={
<div style={{
width: '0.44rem',
height: '0.44rem',
background: 'url(https://zos.alipayobjects.com/rmsportal/WdEuTLJOVzeABZlKYLmJ.png) center center / 0.44rem 0.35rem no-repeat' }}
/>
}
selectedIcon={
<div style={{
width: '0.44rem',
height: '0.44rem',
background: 'url(https://zos.alipayobjects.com/rmsportal/sRkvMgIGXERtyRVyAsXP.png) center center / 0.44rem 0.35rem no-repeat' }}
/>
}
title="朋友"
key="朋友"
selected={this.state.selectedTab === 'greenTab'}
onPress={() => {
this.setState({
selectedTab: 'greenTab',
});
}}
>
{this.renderContent('朋友')}
</TabBar.Item>
<TabBar.Item
icon={{ uri: 'https://zos.alipayobjects.com/rmsportal/cKhfyLTszUeFARPgfokz.png' }}
selectedIcon={{ uri: 'https://zos.alipayobjects.com/rmsportal/bqUXyjiOyKrXRfiIZVsZ.png' }}
title="我的"
key="我的"
selected={this.state.selectedTab === 'yellowTab'}
onPress={() => {
this.setState({
selectedTab: 'yellowTab',
});
}}
>
{this.renderContent('我的')}
</TabBar.Item>
</TabBar>
);
},
});
ReactDOM.render(<TabBarExample />, mountNode);
.demo-preview-item,
.am-tab-bar,
.am-tab-bar-content,
.am-tab-bar-tabpane {
height: 100%;
}
API ( 适用平台:WEB、React-Native )
TabBar
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
barTintColor | tabbar 背景色 | String | white |
tintColor | 选中的字体颜色 | String | #108ee9 |
unselectedTintColor | 未选中的字体颜色 | String | '#888' |
hidden | 是否隐藏 | Boolean | false |
prefixCls(web only ) | 样式前缀 | String | 'am-tab-bar' |
TabBar.Item
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
badge | 徽标数 | Number \ String | 无 |
onPress | bar 点击触发,需要自己改变组件 state & selecte={true} | Function | (){} |
selected | 是否选中 | Boolean | false |
icon | 默认展示图片 | Image Source(rn) \ web 方式见 demo | |
selectedIcon | 选中后的展示图片 | Image Source(rn) \ web 方式见 demo | |
title | 标题文字 | String | |
iconStyle | icon 样式 (rn android only ) | String | { width: 28, height: 28 } |