Skip to content

A tab bar with animation effects, written in JS for cross-platform support

License

Notifications You must be signed in to change notification settings

saltas888/react-native-animated-tabbar

 
 

Repository files navigation

Animated Tabbar

This component is just a combination of React-native-tab-navigator and React-native-animatable in order to add easily animation effects on your Tabbar.

You can choose any of the React-native-animatable animations or the youtube-like pulse animation

It works for both iOS & Android

Inspiration

Highly Inspired by React-native-tab-navigator & React-native-animatable

Install

Make sure that you are in your React Native project directory and run:

npm install react-native-animated-tabbar --save

Usage

Import TabNavigator as a JavaScript module:

import TabNavigator from 'react-native-animated-tabbar';

This is an example of how to use the component and some of the commonly used props that it supports:

<TabNavigator>
  <TabNavigator.Item
    selected={this.state.selectedTab === 'home'}
    title="Home"
    animation="rotate"
    renderIcon={() => <Image source={...} />}
    renderSelectedIcon={() => <Image source={...} />}
    badgeText="1"
    onPress={() => this.setState({ selectedTab: 'home' })}>
    {homeView}
  </TabNavigator.Item>
  <TabNavigator.Item
    selected={this.state.selectedTab === 'profile'}
    title="Profile"
    animation="zoomIn"
    renderIcon={() => <Image source={...} />}
    renderSelectedIcon={() => <Image source={...} />}
    renderBadge={() => <CustomBadgeView />}
    onPress={() => this.setState({ selectedTab: 'profile' })}>
    {profileView}
  </TabNavigator.Item>
</TabNavigator>

See TabNavigatorItem's supported props for more info.

Hiding the Tab Bar

You can hide the tab bar by using styles. For example:

let tabBarHeight = 0;
<TabNavigator
  tabBarStyle={{ height: tabBarHeight, overflow: 'hidden' }}
  sceneStyle={{ paddingBottom: tabBarHeight }}
/>

Props

TabNavigator props

prop default type description
sceneStyle inherited object (style) define for rendered scene
tabBarStyle inherited object (style) define style for TabBar
tabBarShadowStyle inherited object (style) define shadow style for tabBar
hidesTabTouch false boolean disable onPress opacity for Tab

TabNavigator Animation props

prop default type description
animationDuration 500 number transition time of animation

TabNavigator.Item props

prop default type description
renderIcon none function returns Item icon
renderSelectedIcon none function returns selected Item icon
badgeText none string or number text for Item badge
renderBadge none function returns Item badge
title none string Item title
titleStyle inherited style styling for Item title
selectedTitleStyle none style styling for selected Item title
tabStyle inherited style styling for tab
selected none boolean return whether the item is selected
onPress none function onPress method for Item
allowFontScaling false boolean allow font scaling for title

TabNavigator.Item Animation props

prop default type description
animation none string One of animation types from react-native-animatable OR 'youtubePulse'
pulseColor #f4010d string Pulse hex color when animation is youtubePulse

About

A tab bar with animation effects, written in JS for cross-platform support

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%