[](https://npmjs.org/package/@yz1311/react-native-scrollable-tab-view "View this project on npm") [;
``javascript
var ScrollableTabView = require('@yz1311/react-native-scrollable-tab-view');
var App = React.createClass({
render() {
return (
);
}
});
`
Suppose we had a custom tab bar called CustomTabBar, we would injectScrollableTabView
it into our like this:
`javascript
var ScrollableTabView = require('@yz1311/react-native-scrollable-tab-view');
var CustomTabBar = require('./CustomTabBar');
var App = React.createClass({
render() {
return (
);
}
});
`
To start you can just copy DefaultTabBar.
- 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 tab(can be buggy see #126children
- _(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.prerenderingSiblingsNumber
- _(Integer)_ - pre-render nearby # sibling, Infinity === render all the siblings, default to 0 === render current page.
Pull requests are welcome. If you want to change API or making something big better to create issue and discuss it first. Before submiting PR please run `eslint .`` Also all eslint fixes are welcome.
Please attach video or gif to PR's and issues it is super helpful.
---
MIT Licensed