``` https://snack.expo.io/By0FEomKf
npm install rn-collapsing-tab-bar``
https://snack.expo.io/By0FEomKf
`
This is probably my favorite navigation pattern on Android, I wish it
were more common on iOS! This is a very simple JavaScript-only
implementation of it for React Native. For more information about how
the animations behind this work, check out the Rebound section of the
React Native Animation Guide
Thanks to ,
https://github.com/skv-headless/react-native-scrollable-tab-view
1. Run npm install rn-collapsing-tab-bar --savevar ScrollableTabView = require('rn-collapsing-tab-bar');
2.
`javascript
var ScrollableTabView = require('rn-collapsing-tab-bar');
var App = React.createClass({
render() {
return (
);
}
});
`
``
DEMO
!Demo
Suppose we had a custom tab bar called CustomTabBar, we would injectScrollableTabView
it into our like this:
`javascript
var ScrollableTabView = require('rn-collapsing-tab-bar');
var CustomTabBar = require('./CustomTabBar');
var App = React.createClass({
render() {
return (
);
}
});
`
- renderTabBar _(Function:ReactComponent)_ - accept 1 argument props and should return a component to use asgoToPage
the tab bar. The component has , tabs, activeTab andref
added to the props, and should implement setAnimationValue toprops
be able to animate itself along with the tab content. You can manually pass the to the TabBar component.tabBarPosition
- _(String)_ Defaults to "top"."bottom"
- to position the tab bar below content."overlayTop"
- or "overlayBottom" for a semitransparent tab bar that overlays content. Custom tab bars must consume a style prop on their outer element to support this feature: style={this.props.style}.onChangeTab
- _(Function)_ - function to call when tab changes, should accept 1 argument which is an Object containing two keys: i: the index of the tab that is selected, ref: the ref of the tab that is selectedonScroll
- _(Function)_ - function to call when the pages are sliding, should accept 1 argument which is an Float number representing the page position in the slide frame.locked
- _(Bool)_ - disables horizontal dragging to scroll between tabs, default is false.initialPage
- _(Integer)_ - the index of the initially selected tab, defaults to 0 === first tab.page
- _(Integer)_ - set selected tabchildren
- _(ReactComponents)_ - each top-level child component should have a tabLabel prop that can be used by the tab bar component to render out the labels. The default tab bar expects it to be a string, but you can use anything you want if you make a custom tab bar.tabBarUnderlineStyle
- _(View.propTypes.style)_ - style of the default tab bar's underline.tabBarBackgroundColor
- _(String)_ - color of the default tab bar's background, defaults to whitetabBarActiveTextColor
- _(String)_ - color of the default tab bar's text when active, defaults to navytabBarInactiveTextColor
- _(String)_ - color of the default tab bar's text when inactive, defaults to blacktabBarTextStyle
- _(Object)_ - Additional styles to the tab bar's text. Example: {fontFamily: 'Roboto', fontSize: 15}style
- _(View.propTypes.style)_contentProps
- _(Object)_ - props that are applied to root ScrollView/ViewPagerAndroid. Note that overriding defaults set by the library may break functionality; see the source for details.scrollWithoutAnimation
- _(Bool)_ - on tab press change tab without animation.scrollToTopAnimation
- _(Bool)_ - setting animation scroll to top when user change tab.prerenderingSiblingsNumber
- _(Integer)_ - pre-render nearby # sibling, Infinity` === render all the siblings, default to 0 === render current page.
MIT Licensed