react-native-paper-tabs
Smooth and fast cross platform Material Design Tabs for React Native Paper.
- Smooth and fast cross platform Material Design Tabs for (react-native-paper)
- Tested on Android, iOS and the web
- Simple API
- Typesafe
- Scrollable and fixed
- Leading or top icon
- Performant
- Uses native components (react-native-viewpager)
- Great React Native Web support
- Implements official spec (material-design-spec)
Getting started
Yarn
yarn add react-native-paper-tabs @react-native-community/viewpager
npm
npm install react-native-paper-tabs @react-native-community/viewpager
Usage
import {
Button,
Title,
Paragraph,
} from 'react-native-paper';
import {
Tabs,
TabScreen,
useTabIndex,
useTabNavigation,
} from 'react-native-paper-tabs';
function Example() {
return (
<Tabs
// uppercase={false} // true/false | default=true | labels are uppercase
// showTextLabel={false} // true/false | default=false (KEEP PROVIDING LABEL WE USE IT AS KEY INTERNALLY + SCREEN READERS)
// iconPosition // leading, top | default=leading
// style={{ backgroundColor:'#fff' }} // works the same as AppBar in react-native-paper
// dark={false} // works the same as AppBar in react-native-paper
// theme={} // works the same as AppBar in react-native-paper
// mode="scrollable" // fixed, scrollable | default=fixed
>
<TabScreen label="Explore" icon="compass">
<ExploreWitHookExamples />
</TabScreen>
<TabScreen label="Flights" icon="airplane">
<View style={{ backgroundColor: 'black', flex:1 }} />
</TabScreen>
<TabScreen label="Trips" icon="bag-suitcase">
<View style={{ backgroundColor: 'red', flex:1 }} />
</TabScreen>
</Tabs>
)
}
function ExploreWitHookExamples() {
const goTo = useTabNavigation();
const index = useTabIndex();
return (
<View style={{ flex:1 }}>
<Title>Explore</Title>
<Paragraph>Index: {index}</Paragraph>
<Button onPress={() => goTo(1)}>Go to Flights</Button>
</View>
);
}