Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

native-tabs

This tiny package witch was built for React Native via Animated Views from own React Native elements without using external packages.

Demo

  1. NativeTabs without scroll with a small number of tabs.
  2. NativeTabs with scroll used for a large number of tabs or very wide tabs.

Installation

npm i native-tabs

Docs

PropertyTypeDescription
tabsrequired arrayThe array consists of objects which must have an id inside an object. More details about tab structure below.
activeTabrequired objectThe object must have an id.
onTabrequired functionThe function returns new active tab.
disabledboolDisable onTab function.
stylesobjectAn object of react native styles. More details below.

Tab Structure

PropertyTypeDescription
idstring or numberBy this id will be handling of active tab.
namestring or numberThe text inside of tab.
nodeReact NodePossible to render another react node instead of Text inside of a Tab. In this case name does not displayed.

Styles:

PropertyTypeDescription
wrapViewPropTypes.styleStyles for the wrap View component. Useful for adding a border, shadow and etc.
tabsViewPropTypes.styleStyles for the component of the whole list of tabs.
tabTouchableOpacity.propTypes.styleStyles for a tab.
tabTextText.propTypes.styleStyles for a text of a tab.
activeTabTouchableOpacity.propTypes.styleStyles for active tab.
activeTabTextText.propTypes.styleStyles for a text of active tab.
underlineView.propTypes.styleStyles for a moving underline.

Usage:

importNativeTabsfrom'native-tabs';import{StyleSheet,Text,View}from'react-native';constitems=[{id: 111,name: "lorem"},{id: 222,name: "ipsum"},{id: 333,node: <View><Text>dolor</Text></View>}];classSomeComponentextendsReact.Component{constructor(props){super(props);this.state={activeTab: {id: 111}};this.callBackFunction=this.callBackFunction.bind(this);{callBackFunction(tab){this.setState({activeTab: tab});}render(){return<NativeTabstabs={items}styles={{wrap: styles.wrap,tab: styles.tab,tabText: styles.tabText,underline: styles.underline}}activeTab={this.state.activeTab}onTab={this.callBackFunction}/>;}}conststyles=StyleSheet.create({wrap: {backgroundColor: '#fff',borderBottomColor: "#eaeaea",borderBottomWidth: 1,},tab: {flex: 1,alignItems: 'center',padding: 16,paddingTop: 12,paddingBottom: 12},tabText: {width: "100%",textAlign: "center"},underline: {height: 3,backgroundColor: "#00D8BB"}});

About

React Native Tabs

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages