1
1
import * as React from 'react' ;
2
2
import { createAppContainer } from 'react-navigation' ;
3
3
import { TransitionPresets } from 'react-navigation-stack' ;
4
- import { createBottomTabNavigator } from 'react-navigation-tabs' ;
5
- import { createSharedElementStackNavigator } from 'react-navigation-shared-element' ;
4
+ import {
5
+ createBottomTabNavigator ,
6
+ createMaterialTopTabNavigator ,
7
+ } from 'react-navigation-tabs/src/index.tsx' ;
8
+ import { createSharedElementStackNavigator4 } from 'react-navigation-shared-element' ;
6
9
import { enableScreens } from 'react-native-screens' ;
7
10
import { MainScreen } from './MainScreen' ;
8
11
import { DetailScreen } from './DetailScreen' ;
@@ -11,18 +14,43 @@ import Icon from 'react-native-vector-icons/Ionicons';
11
14
12
15
enableScreens ( ) ;
13
16
14
- const StackNavigator1 = createSharedElementStackNavigator (
17
+ export const iosTransitionSpec = {
18
+ animation : 'spring' ,
19
+ config : {
20
+ stiffness : 1000 ,
21
+ damping : 500 ,
22
+ mass : 3 ,
23
+ overshootClamping : true ,
24
+ restDisplacementThreshold : 10 ,
25
+ restSpeedThreshold : 10 ,
26
+ } ,
27
+ } ;
28
+
29
+ const StackNavigator1 = createSharedElementStackNavigator4 (
15
30
{
16
31
Main : MainScreen ,
17
32
Detail : DetailScreen ,
18
33
} ,
19
- undefined ,
34
+ {
35
+ defaultNavigationOptions : {
36
+ onTransitionStart : ( a , b , c ) => {
37
+ console . log ( 'onTransitionStart: ' , a , b , c ) ;
38
+ } ,
39
+ onTransitionEnd : ( a , b , c ) => {
40
+ console . log ( 'onTransitionEnd: ' , a , b , c ) ;
41
+ } ,
42
+ transitionSpec : {
43
+ open : iosTransitionSpec ,
44
+ close : iosTransitionSpec ,
45
+ } ,
46
+ } ,
47
+ } ,
20
48
{
21
49
name : 'StackNavigator1' ,
22
50
} ,
23
51
) ;
24
52
25
- const StackNavigator2 = createSharedElementStackNavigator (
53
+ const StackNavigator2 = createSharedElementStackNavigator4 (
26
54
{
27
55
Main : {
28
56
screen : props => < MainScreen { ...props } modal /> ,
@@ -34,6 +62,32 @@ const StackNavigator2 = createSharedElementStackNavigator(
34
62
} ,
35
63
) ;
36
64
65
+ const StackNavigator3_5 = createSharedElementStackNavigator4 (
66
+ {
67
+ Detail : DetailScreen ,
68
+ } ,
69
+ undefined ,
70
+ {
71
+ name : 'StackNavigator3_5' ,
72
+ } ,
73
+ ) ;
74
+
75
+ const StackNavigator3 = createSharedElementStackNavigator4 (
76
+ {
77
+ Main : MainScreen ,
78
+ Detail : StackNavigator3_5 ,
79
+ /*TopTab: {
80
+ screen: createSharedElementStackNavigator({
81
+ Detail: DetailScreen,
82
+ }),
83
+ },*/
84
+ } ,
85
+ undefined ,
86
+ {
87
+ name : 'StackNavigator3' ,
88
+ } ,
89
+ ) ;
90
+
37
91
const TabNavigator = createBottomTabNavigator ( {
38
92
Tab1 : {
39
93
screen : StackNavigator1 ,
@@ -53,9 +107,18 @@ const TabNavigator = createBottomTabNavigator({
53
107
) ,
54
108
} ,
55
109
} ,
110
+ Tab3 : {
111
+ screen : StackNavigator3 ,
112
+ navigationOptions : {
113
+ title : 'Top Tabs' ,
114
+ tabBarIcon : props => (
115
+ < Icon name = "md-keypad" size = { 20 } color = { props . tintColor } />
116
+ ) ,
117
+ } ,
118
+ } ,
56
119
} ) ;
57
120
58
- const RootModalStackNavigator = createSharedElementStackNavigator (
121
+ const RootModalStackNavigator = createSharedElementStackNavigator4 (
59
122
{
60
123
Tabs : TabNavigator ,
61
124
Modal : ModalScreen ,
0 commit comments