UNPKG

@td-design/react-native

Version:

react-native UI组件库

138 lines (120 loc) 4.78 kB
--- title: Accordion - 手风琴组件 nav: title: RN组件 path: /react-native group: title: 其他组件 path: /other order: 10 --- # Accordion 手风琴组件 ## 效果演示 ### 1. 默认效果 ```tsx | pure <Accordion sections={[ { title: '我是标题', content: '11111111111111111' }, { title: '我是标题', content: '222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222', }, { title: '我是标题', content: `我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是`, }, ]} /> ``` <center> <img alt="" src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1643092835880873364.gif" style="width: 375px; margin-right: 10px; border: 1px solid #ddd;" /> </center> ### 2. 只允许展开一个 ```tsx | pure <Accordion multiple={false} sections={[ { title: '我是标题', content: '11111111111111111' }, { title: '我是标题', content: '222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222', }, { title: '我是标题', content: `我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是`, }, ]} /> ``` <center> <img alt="" src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1643092898980235941.gif" style="width: 375px; margin-right: 10px; border: 1px solid #ddd;" /> </center> ### 3. 自定义选项卡容器样式 ```tsx | pure <Accordion multiple={true} sections={[ { title: '我是标题', content: '11111111111111111' }, { title: '我是标题', content: '222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222', }, { title: '我是标题', content: `我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是`, }, ]} contentStyle={{ padding: 12 }} /> ``` <center> <img alt="" src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1643093000896584086.gif" style="width: 375px; margin-right: 10px; border: 1px solid #ddd;" /> </center> ### 4. 自定义容器样式 ```tsx | pure <Accordion multiple={true} sections={[ { title: '我是标题', content: '11111111111111111' }, { title: '我是标题', content: '222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222', }, { title: '我是标题', content: `我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是`, }, ]} accordionStyle={{ borderWidth: 1, borderColor: 'red', marginHorizontal: 12 }} /> ``` <center> <img alt="" src="https://td-dev-public.oss-cn-hangzhou.aliyuncs.com/maoyes-app/1643093115012785632.gif" style="width: 375px; margin-right: 10px; border: 1px solid #ddd;" /> </center> ## API ### Accordion 属性 | 属性 | 必填 | 说明 | 类型 | 默认值 | | --- | --- | --- | --- | --- | | sections | `true` | 手风琴选项卡列表 | `Section[]` | | | multiple | `false` | 是否允许展开多个 | `boolean` | `true` | | activeOpacity | `false` | 按下时的不透明度 | `number` | `0.6` | | headerHeight | `false` | 选项卡标题高度 | `number` | `54` | | accordionStyle | `false` | 容器样式 | `ViewStyle` | | | contentStyle | `false` | 选项卡样式 | `ViewStyle` | | | customIcon | `false` | 自定义右侧图标 | `({ progress }: { progress: Animated.SharedValue<number> }) => ReactNode` | |