Skip to main content

Accordion component

Effect demonstration

1. Default effect

<Accordion
sections={[
{ title: 'I am the title', content: '11111111111111111' },
{
title: 'I am the title',
content: '2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222',
},
{
title: 'I am the title',
content: `I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am Content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am`,
},
]}
/>

2. Only one expansion is allowed

<Accordion
multiple={false}
sections={[
{ title: 'I am the title', content: '11111111111111111' },
{
title: 'I am the title',
content: '2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222',
},
{
title: 'I am the title',
content: `I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am Content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am`,
},
]}
/>

3. Customize tab container style

<Accordion
multiple={true}
sections={[
{ title: 'I am the title', content: '11111111111111111' },
{
title: 'I am the title',
content: '2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222',
},
{
title: 'I am the title',
content: `I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am Content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am`,
},
]}
contentStyle={{padding: 12, backgroundColor: 'red'}}
/>

4. Custom container style

<Accordion
multiple={true}
sections={[
{ title: 'I am the title', content: '11111111111111111' },
{
title: 'I am the title',
content: '2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222',
},
{
title: 'I am the title',
content: `I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am Content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am content I am`,
},
]}
accordionStyle={{ borderWidth: 1, borderColor: 'red', marginHorizontal: 12 }}
/>

API

Accordion Properties

PropertiesRequiredDescriptionTypeDefault Value
sectionstrueAccordion tab listSection[]
multiplefalseWhether to allow multiple expansionsbooleantrue
activeOpacityfalseOpacity when pressednumber0.6
headerHeightfalseTab header heightnumber54
accordionStylefalseContainer styleViewStyle
contentStylefalsetab styleViewStyle
customIconfalseCustom right icon({ progress }: { progress: Animated.SharedValue<number> }) => ReactNode