Tab 选项卡
介绍
选项卡
用法
基础(均分)
<OsTabs
renderHeader={
<OsTabsHeader value={current}>
<OsTabsHeaderItem
index={0}
current={current}
text='标签1'
onClick={(value) => onClick(value, setCurrent)}
/>
...
<OsTabsHeaderItem
index={4}
current={current}
text='标签5'
onClick={(value) => onClick(value, setCurrent)}
/>
</OsTabsHeader>
}
>
<OsTabsPanel
current={current}
index={0}
customStyle={{ height: Taro.pxTransform(400) }}
>
<View className='tabs__content'>标签1内容区域</View>
</OsTabsPanel>
...
<OsTabsPanel
current={current}
index={4}
customStyle={{ height: Taro.pxTransform(400) }}
>
<View className='tabs__content'>标签5内容区域</View>
</OsTabsPanel>
</OsTabs>
tab左右留间距后均分
<OsTabs
size='large'
renderHeader={
<OsTabsHeader
size='large'
bgColor='#fff'
space={60}
value={current4}
>
<OsTabsHeaderItem
size='large'
index={0}
current={current4}
custom
renderCustom={<Text>标签1</Text>}
renderSelectedCustom={<Countdown />}
onClick={(value) => onClick4(value, setCurrent4)}
/>
<OsTabsHeaderItem
size='large'
index={1}
current={current4}
text='标签2'
onClick={(value) => onClick4(value, setCurrent4)}
/>
</OsTabsHeader>
}
>
<OsTabsPanel
current={current4}
index={0}
customStyle={{ height: Taro.pxTransform(400) }}
>
<View className='tabs__content'>标签1内容区域</View>
</OsTabsPanel>
<OsTabsPanel
current={current4}
index={1}
customStyle={{ height: Taro.pxTransform(400) }}
>
<View className='tabs__content'>标签2内容区域</View>
</OsTabsPanel>
</OsTabs>
横向超过5个(开启横向滚动)
<OsTabs
renderHeader={
<OsTabsHeader scroll>
{tabsArr1.map((item, index) => (
<OsTabsHeaderItem
index={index}
current={current1}
key={item.text}
text={item.text}
onClick={(value) => onClick1(value, setCurrent1)}
/>
))}
</OsTabsHeader>
}
>
{tabsArr1.map((item: any, index: number) => (
<OsTabsPanel
key={item.text}
current={current1}
index={index}
customStyle={{ height: Taro.pxTransform(400) }}
>
<View className='tabs__content'>标签{index + 1}内容区域</View>
</OsTabsPanel>
))}
</OsTabs>
竖状(高度超过一屏,开启竖向滚动)
<OsTabs
type='vertical'
renderHeader={
<OsTabsHeader type='vertical' scroll>
{tabsArr3.map((item, index) => (
<OsTabsHeaderItem
type='vertical'
index={index}
current={current3}
key={item.text}
text={item.text}
onClick={(value) => onClick3(value, setCurrent3)}
/>
))}
</OsTabsHeader>
}
>
{tabsArr3.map((item: any, index: number) => (
<OsTabsPanel
key={item.text}
current={current3}
index={index}
customStyle={{
height: Taro.pxTransform(400),
width: "100%",
padding: "100PX 50PX",
}}
>
<View className='tabs__content'>标签{index + 1}内容区域</View>
</OsTabsPanel>
))}
</OsTabs>
带icon
<OsTabs
renderHeader={
<OsTabsHeader>
{tabsArr2.map((item, index) => (
<OsTabsHeaderItem
index={index}
current={current2}
text={item.text}
key={item.icon}
icon={item.icon}
selectedIcon={item.selectedIcon}
onClick={(value) => onClick2(value, setCurrent2)}
/>
))}
</OsTabsHeader>
}
>
{tabsArr2.map((item: any, index: number) => (
<OsTabsPanel
current={current2}
key={item.text}
index={index}
customStyle={{ height: Taro.pxTransform(400), width: "100%" }}
>
<View className='tabs__content'>标签{index + 1}内容区域</View>
</OsTabsPanel>
))}
</OsTabs>
API
属性
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
type | horizontal | vertical,可选 | string | horizontal |
renderHeader | 一个OsTabsHeader组件,必选 | OsTabsHeader | - |
TabsHeader属性
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
type | horizontal | vertical,可选 | string | horizontal |
size | default | large,尺寸,可选 | string | default |
showSplitLine | 是否显示分割线,可选 | boolean | false |
scroll | 是否开启滚动,可选 | boolean | false |
bgColor | 背景色,可选 | string | #fafafa |
value | 当前选中索引,可选 | number | 0 |
TabsHeaderItem属性
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
type | horizontal | vertical,可选 | string | horizontal |
size | default | large,尺寸,可选 | string | default |
index | 该项索引,必选 | number | - |
current | 当前索引,可选 | number | 0 |
color | 文字颜色,可选 | string | #333333 |
selectedColor | 选中文字颜色,可选 | string | #DD1A21 |
text | tab文案,可选 | string | - |
icon | 取值参考con,可选 | string | - |
selectIcon | 取值参考Icon,可选 | string | - |
custom | 是否显示自定义组件,可选 | boolean | false |
renderCustom | 自定义组件,可选 | Component | - |
renderSelectedCustom | 选中显示的自定义组件,可选 | Component | - |
方法
无