TabBar 标签栏

位于 APP 底部,方便用户在不同功能模块之间进行快速切换。

规则

  • 用作 APP 的一级分类,数量控制在 3-5 个之间。

  • 即使某个 Tab 不可用,也不要禁用或者移除该 Tab。

  • 使用 Badge 进行提示,足不出户也能知道有内容更新。

代码演示

APP型选项卡

多用于页面的内容区块,起着控制小范围内的大块内容的分组和隐藏,起着保持界面整洁的作用。

  1. import { TabBar } from 'antd-mobile';
  2. /* eslint global-require: 0 */
  3. const TabBarExample = React.createClass({
  4. getInitialState() {
  5. return {
  6. selectedTab: 'redTab',
  7. hidden: false,
  8. };
  9. },
  10. renderContent(pageText) {
  11. return (
  12. <div style={{ backgroundColor: 'white', height: '100%', textAlign: 'center' }}>
  13. <div style={{ paddingTop: 60 }}>你已点击“{pageText}” tab 当前展示“{pageText}”信息</div>
  14. <a style={{ display: 'block', marginTop: 40 }} onClick={(e) => {
  15. e.preventDefault();
  16. this.setState({
  17. hidden: !this.state.hidden,
  18. });
  19. }}
  20. >
  21. 点击切换 tab-bar 显示/隐藏
  22. </a>
  23. </div>
  24. );
  25. },
  26. render() {
  27. return (
  28. <TabBar
  29. unselectedTintColor="#949494"
  30. tintColor="#33A3F4"
  31. barTintColor="white"
  32. hidden={this.state.hidden}
  33. >
  34. <TabBar.Item
  35. title="生活"
  36. key="生活"
  37. icon={require('./alipay_web.png')}
  38. selectedIcon={require('./alipay_web_sel.png')}
  39. selected={this.state.selectedTab === 'blueTab'}
  40. badge={1}
  41. onPress={() => {
  42. this.setState({
  43. selectedTab: 'blueTab',
  44. });
  45. }}
  46. data-seed="logId"
  47. >
  48. {this.renderContent('生活')}
  49. </TabBar.Item>
  50. <TabBar.Item
  51. icon={{ uri: 'https://zos.alipayobjects.com/rmsportal/UNQhIatjpNZHjVf.png' }}
  52. selectedIcon={{ uri: 'https://zos.alipayobjects.com/rmsportal/HLkBvJOKnmOfBPO.png' }}
  53. title="口碑"
  54. key="口碑"
  55. selected={this.state.selectedTab === 'redTab'}
  56. onPress={() => {
  57. this.setState({
  58. selectedTab: 'redTab',
  59. });
  60. }}
  61. data-seed="logId1"
  62. >
  63. {this.renderContent('口碑')}
  64. </TabBar.Item>
  65. <TabBar.Item
  66. icon={
  67. <div style={{
  68. width: '0.44rem',
  69. height: '0.44rem',
  70. background: 'url(https://zos.alipayobjects.com/rmsportal/WdEuTLJOVzeABZlKYLmJ.png) center center / 0.44rem 0.35rem no-repeat' }}
  71. />
  72. }
  73. selectedIcon={
  74. <div style={{
  75. width: '0.44rem',
  76. height: '0.44rem',
  77. background: 'url(https://zos.alipayobjects.com/rmsportal/sRkvMgIGXERtyRVyAsXP.png) center center / 0.44rem 0.35rem no-repeat' }}
  78. />
  79. }
  80. title="朋友"
  81. key="朋友"
  82. selected={this.state.selectedTab === 'greenTab'}
  83. onPress={() => {
  84. this.setState({
  85. selectedTab: 'greenTab',
  86. });
  87. }}
  88. >
  89. {this.renderContent('朋友')}
  90. </TabBar.Item>
  91. <TabBar.Item
  92. icon={{ uri: 'https://zos.alipayobjects.com/rmsportal/cKhfyLTszUeFARPgfokz.png' }}
  93. selectedIcon={{ uri: 'https://zos.alipayobjects.com/rmsportal/bqUXyjiOyKrXRfiIZVsZ.png' }}
  94. title="我的"
  95. key="我的"
  96. selected={this.state.selectedTab === 'yellowTab'}
  97. onPress={() => {
  98. this.setState({
  99. selectedTab: 'yellowTab',
  100. });
  101. }}
  102. >
  103. {this.renderContent('我的')}
  104. </TabBar.Item>
  105. </TabBar>
  106. );
  107. },
  108. });
  109. ReactDOM.render(<TabBarExample />, mountNode);
  1. .demo-preview-item,
  2. .am-tab-bar,
  3. .am-tab-bar-content,
  4. .am-tab-bar-tabpane {
  5. height: 100%;
  6. }

TabBar标签栏 - 图1

API ( 适用平台:WEB、React-Native )

TabBar

参数说明类型默认值
barTintColortabbar 背景色Stringwhite
tintColor选中的字体颜色String#108ee9
unselectedTintColor未选中的字体颜色String'#888'
hidden是否隐藏Booleanfalse
prefixCls(web only)样式前缀String'am-tab-bar'

TabBar.Item

参数说明类型默认值
badge徽标数Number \ String
onPressbar 点击触发,需要自己改变组件 state & selecte={true}Function(){}
selected是否选中Booleanfalse
icon默认展示图片Image Source(rn) \ web 方式见 demo
selectedIcon选中后的展示图片Image Source(rn) \ web 方式见 demo
title标题文字String
iconStyleicon 样式 (rn android only)String{ width: 28, height: 28 }