Tabs 标签页
定义/Definition
标签栏用于让用户在不同的子任务、视图和模式中进行切换。规则 / Rule
标签栏位于屏幕底部,并应该保证在应用内任何位置都可用。标签栏展示图标和文字内容,每一项均保持等宽。当用户选中某个标签时,该标签呈现适当的高亮状态。
一个标签栏一次最多可承载5个标签,最少显示2个
你可以在标签上加上红底白字,显示数字或者省略号的小气泡(badge),用以展示与应用相关的信息。
你可以使用标签栏来切换对同一组数据的不同视图模式,或者整体功能下不同的子任务。
即使标签当前不可用,也不要把它从标签栏中删除。如果某个标签所代表的部分功能在当前场景下不可用,可以将它标识为不可用状态,但不要删除它。让某些标签时而出现时而隐藏,会让用户觉得应用UI不稳定而且难以预测。最好的解决方式是确保每个标签都可用,并解释当前标签不可用的原因。
代码演示
多用于页面的内容区块,起着控制小范围内的大块内容的分组和隐藏,起着保持界面整洁的作用。
主要应用在页面的NavBar区块,一般起着控制全局页面内容切换的作用。选项卡的文字内容建议不超过四个。
import { Tabs, WhiteSpace } from 'antd-mobile';const TabPane = Tabs.TabPane;function callback(key) {console.log(key);}let TabExample = React.createClass({render() {return (<div><Tabs defaultActiveKey="1" onChange={callback}><TabPane tab="选项卡一" key="1">选项卡一内容</TabPane><TabPane tab="选项卡二" key="2">选项卡二内容</TabPane><TabPane tab="选项卡三" key="3">选项卡三内容</TabPane></Tabs><WhiteSpace /></div>);},});ReactDOM.render(<TabExample />, mountNode);
多用于页面的内容区块,起着控制小范围内的大块内容的分组和隐藏,起着保持界面整洁的作用。
import { Tabs, WhiteSpace } from 'antd-mobile';const TabPane = Tabs.TabPane;function callback(key) {console.log(key);}let TabExample = React.createClass({render() {return (<div><WhiteSpace /><Tabs defaultActiveKey="1" type="capsule" onChange={callback}><TabPane tab="选项卡一" key="1">选项卡一内容</TabPane><TabPane tab="选项卡二" key="2">选项卡二内容</TabPane><TabPane tab="选项卡三" key="3">选项卡三内容</TabPane></Tabs><WhiteSpace /></div>);},});ReactDOM.render(<TabExample />, mountNode);
禁用内容区域的切换动画效果
import { Tabs, Icon, WhiteSpace } from 'antd-mobile';const TabPane = Tabs.TabPane;function callback(key) {console.log(key);}let TabExample = React.createClass({render() {return (<div><Tabs type="tabbar" defaultActiveKey="1" onChange={callback}><TabPane tab={<span><Icon type="home" />首页</span>} key="1">选项首页内容</TabPane><TabPane tab={<span><Icon type="team" />好友</span>} key="2">选项好友内容</TabPane><TabPane tab={<span><Icon type="setting" />设置</span>} key="3">选项设置的内容</TabPane></Tabs><WhiteSpace /><Tabs type="tabbar" mode="dark" defaultActiveKey="2" onChange={callback}><TabPane tab={<span><Icon type="home" />首页</span>} key="1">选项首页内容</TabPane><TabPane tab={<span><Icon type="team" />好友</span>} key="2">选项好友内容</TabPane><TabPane tab={<span><Icon type="setting" />设置</span>} key="3">选项设置的内容</TabPane></Tabs></div>);},});ReactDOM.render(<TabExample />, mountNode);
import { Tabs, WhiteSpace, Icon } from 'antd-mobile';const TabPane = Tabs.TabPane;function callback(key) {console.log(key);}let TabExample = React.createClass({render() {return (<div><WhiteSpace /><Tabs defaultActiveKey="1" animation={false} onChange={callback}><TabPane tab={<span><Icon type="loading" />选项卡一</span>} key="1">选项卡一内容</TabPane><TabPane tab="选项卡二" key="2">选项卡二内容</TabPane><TabPane tab="选项卡三" key="3">选项卡三内容</TabPane></Tabs><WhiteSpace /></div>);},});ReactDOM.render(<TabExample />, mountNode);

API
Tabs
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| activeKey | 当前激活 tab 面板的 key | String | 无 |
| defaultActiveKey | 初始化选中面板的 key,如果没有设置 activeKey | String | 第一个面板 |
| onChange | 切换面板的回调 | Function | 无 |
| onTabClick | tab 被点击的回调 | Function | 无 |
| type | 页签的基本样式,可选 line、capsule、tabbar 类型 | String | 'line' |
| animation | 内容区域动画, 目前仅支持 slide-horizontal, 设为 false 禁用动画 | String | slide-horizontal |
| mode | dark、light 仅当 type 为 tabbar 有效 | String | 'light' |
Tabs.TabPane
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| key | 对应 activeKey | String | 无 |
| tab | 选项卡头显示文字 | React.Element or String | 无 |
