|
@@ -11,6 +11,7 @@ App-wide support for 100% native navigation with an easy cross-platform interfac
|
11
|
11
|
* [Screen API](#screen-api)
|
12
|
12
|
* [Styling the navigator](#styling-the-navigator)
|
13
|
13
|
* [Adding buttons to the navigator](#adding-buttons-to-the-navigator)
|
|
14
|
+* [Styling the tab bar](#styling-the-tab-bar)
|
14
|
15
|
* [Deep links](#deep-links)
|
15
|
16
|
* [Release Notes](RELEASES.md)
|
16
|
17
|
* [License](#license)
|
|
@@ -138,6 +139,11 @@ Navigation.startTabBasedApp({
|
138
|
139
|
title: 'Screen Two'
|
139
|
140
|
}
|
140
|
141
|
],
|
|
142
|
+ tabsStyle: { // optional, add this if you want to style the tab bar beyond the defaults
|
|
143
|
+ tabBarButtonColor: '#ffff00', // optional, change the color of the tab icons and text (also unselected)
|
|
144
|
+ tabBarSelectedButtonColor: '#ff9900', // optional, change the color of the selected tab icon and text (only selected)
|
|
145
|
+ tabBarBackgroundColor: '#551A8B' // optional, change the background color of the tab bar
|
|
146
|
+ },
|
141
|
147
|
drawer: { // optional, add this if you want a side menu drawer in your app
|
142
|
148
|
left: { // optional, define if you want a drawer from the left
|
143
|
149
|
screen: 'example.FirstSideMenu' // unique ID registered with Navigation.registerScreen
|
|
@@ -331,6 +337,38 @@ this.props.navigator.toggleDrawer({
|
331
|
337
|
animated: true, // does the toggle have transition animation or does it happen immediately (optional)
|
332
|
338
|
to: 'open' // optional, 'open' = open the drawer, 'closed' = close it, missing = the opposite of current state
|
333
|
339
|
});
|
|
340
|
+```
|
|
341
|
+
|
|
342
|
+ * **toggleTabs(params = {})**
|
|
343
|
+
|
|
344
|
+Toggle whether the tabs are displayed or not (only in tab-based apps).
|
|
345
|
+
|
|
346
|
+```js
|
|
347
|
+this.props.navigator.toggleDrawer({
|
|
348
|
+ to: 'hidden', // required, 'hidden' = hide tab bar, 'shown' = show tab bar
|
|
349
|
+ animated: true // does the toggle have transition animation or does it happen immediately (optional)
|
|
350
|
+});
|
|
351
|
+```
|
|
352
|
+
|
|
353
|
+ * **setTabBadge(params = {})**
|
|
354
|
+
|
|
355
|
+Set the badge on a tab (any string or numeric value).
|
|
356
|
+
|
|
357
|
+```js
|
|
358
|
+this.props.navigator.setTabBadge({
|
|
359
|
+ tabIndex: 0, // (optional) if missing, the badge will be added to this screen's tab
|
|
360
|
+ badge: 17 // badge value, null to remove badge
|
|
361
|
+});
|
|
362
|
+```
|
|
363
|
+
|
|
364
|
+ * **switchToTab(params = {})**
|
|
365
|
+
|
|
366
|
+Switch to a tab (sets it as the currently selected tab).
|
|
367
|
+
|
|
368
|
+```js
|
|
369
|
+this.props.navigator.switchToTab({
|
|
370
|
+ tabIndex: 0 // (optional) if missing, this screen's tab will become selected
|
|
371
|
+});
|
334
|
372
|
```
|
335
|
373
|
|
336
|
374
|
## Styling the navigator
|
|
@@ -435,6 +473,31 @@ class FirstTabScreen extends Component {
|
435
|
473
|
}
|
436
|
474
|
```
|
437
|
475
|
|
|
476
|
+## Styling the tab bar
|
|
477
|
+
|
|
478
|
+You can style the tab bar appearance by passing a `tabsStyle` object when the app is originally created (on `startTabBasedApp`).
|
|
479
|
+
|
|
480
|
+```js
|
|
481
|
+Navigation.startTabBasedApp({
|
|
482
|
+ tabs: [ ... ],
|
|
483
|
+ tabsStyle: { // optional, add this if you want to style the tab bar beyond the defaults
|
|
484
|
+ tabBarButtonColor: '#ff0000'
|
|
485
|
+ }
|
|
486
|
+});
|
|
487
|
+```
|
|
488
|
+
|
|
489
|
+#### Style object format
|
|
490
|
+
|
|
491
|
+```js
|
|
492
|
+{
|
|
493
|
+ tabBarButtonColor: '#ffff00', // change the color of the tab icons and text (also unselected)
|
|
494
|
+ tabBarSelectedButtonColor: '#ff9900', // change the color of the selected tab icon and text (only selected)
|
|
495
|
+ tabBarBackgroundColor: '#551A8B' // change the background color of the tab bar
|
|
496
|
+}
|
|
497
|
+```
|
|
498
|
+
|
|
499
|
+All supported styles are defined [here](https://github.com/wix/react-native-controllers#styling-tab-bar). There's also an example project there showcasing all the different styles.
|
|
500
|
+
|
438
|
501
|
## Deep links
|
439
|
502
|
|
440
|
503
|
Deep links are strings which represent internal app paths/routes. They commonly appear on push notification payloads to control which section of the app should be displayed when the notification is clicked. For example, in a chat app, clicking on the notification should open the relevant conversation on the "chats" tab.
|