SegmentedControl 分段器
由至少 2 个分段控件组成,用作不同视图的显示;是 iOS 的推荐组件。规则
和 Tabs 功能相似,尽可能避免一个页面中同时出现这两个组件。
可以搭配 NavBar 一起使用,用于显示多个视图,分段数一般为 2 个。
单独放置一行时,分段数最多为 5 个;文案需要精简,一般 2-4 个字。
尽可能保持文案长度一致。
代码演示
import { SegmentedControl, WingBlank } from 'antd-mobile';
class SegmentedControlExample extends React.Component {
onChange = (e) => {
console.log(`selectedIndex:${e.nativeEvent.selectedSegmentIndex}`);
}
onValueChange = (value) => {
console.log(value);
}
render() {
return (
<WingBlank size="lg" className="sc-example">
<p className="sub-title">Simplest</p>
<SegmentedControl values={['切换一', '切换二']} />
<p className="sub-title">Disabled</p>
<SegmentedControl values={['切换一', '切换二']} disabled />
<p className="sub-title">SelectedIndex</p>
<SegmentedControl selectedIndex={1} values={['切换一', '切换二', '切换三']} />
<p className="sub-title">TintColor</p>
<SegmentedControl
values={['切换一', '切换二', '切换三']}
tintColor={'#ff0000'}
style={{ height: '0.8rem', width: '5rem' }}
/>
<p className="sub-title">onChange/onValueChange</p>
<SegmentedControl
values={['切换一', '切换二', '切换三']}
onChange={this.onChange}
onValueChange={this.onValueChange}
/>
</WingBlank>
);
}
}
ReactDOM.render(<SegmentedControlExample />, mountNode);
.sc-example {
padding-bottom: 0.26rem;
}
.sub-title {
color: #888;
font-size: .28rem;
padding: 30px 0 18px 0;
}
API
适用平台:WEB、React-Native属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
prefixCls(web only ) | 样式前缀 | String | am-segment |
className(web only ) | 样式类 | String | |
style | 自定义样式 | Object | {} |
tintColor | 组件主色调 | String | #2DB7F5 |
disabled | 是否启用 | Boolean | false |
selectedIndex | 选中项在数组中的索引 | Number | 0 |
values | 选项数组,值是字符串 | array | [] |
onChange | 回调函数, 其中e.nativeEvent.selectedSegmentIndex 是选中项索引, e.nativeEvent.value 是选中的值. | (e): void | function(){} |
onValueChange | 回调函数 | (val): void | function(){} |