|
@@ -13,6 +13,7 @@ import com.facebook.react.bridge.WritableMap;
|
13
|
13
|
import com.reactnativenavigation.activities.BaseReactActivity;
|
14
|
14
|
import com.reactnativenavigation.core.RctManager;
|
15
|
15
|
import com.reactnativenavigation.core.objects.Screen;
|
|
16
|
+import com.reactnativenavigation.views.RnnToolBar;
|
16
|
17
|
import com.reactnativenavigation.views.ScreenStack;
|
17
|
18
|
|
18
|
19
|
import java.util.ArrayList;
|
|
@@ -28,23 +29,26 @@ public class ViewPagerAdapter extends PagerAdapter implements TabLayout.OnTabSel
|
28
|
29
|
|
29
|
30
|
private BaseReactActivity mContext;
|
30
|
31
|
private ViewPager mViewPager;
|
31
|
|
- private Toolbar mToolbar;
|
|
32
|
+ private RnnToolBar mToolbar;
|
32
|
33
|
private final ReactInstanceManager mReactInstanceManager;
|
33
|
34
|
private final ArrayList<ScreenStack> screenStacks;
|
|
35
|
+ private final ArrayList<String> navIDs;
|
34
|
36
|
private final Map<String, ScreenStack> stacksByNavId;
|
35
|
37
|
|
36
|
38
|
|
37
|
|
- public ViewPagerAdapter(BaseReactActivity context, ViewPager viewPager, Toolbar toolbar,
|
|
39
|
+ public ViewPagerAdapter(BaseReactActivity context, ViewPager viewPager, RnnToolBar toolbar,
|
38
|
40
|
ArrayList<Screen> screens) {
|
39
|
41
|
mContext = context;
|
40
|
42
|
mViewPager = viewPager;
|
41
|
43
|
mToolbar = toolbar;
|
42
|
44
|
screenStacks = new ArrayList<>();
|
|
45
|
+ navIDs = new ArrayList<>();
|
43
|
46
|
stacksByNavId = new HashMap<>();
|
44
|
47
|
for(Screen screen: screens){
|
45
|
48
|
ScreenStack stack = new ScreenStack(context);
|
46
|
49
|
stack.push(screen);
|
47
|
50
|
screenStacks.add(stack);
|
|
51
|
+ navIDs.add(screen.navigatorId);
|
48
|
52
|
stacksByNavId.put(screen.navigatorId, stack);
|
49
|
53
|
}
|
50
|
54
|
mReactInstanceManager = RctManager.getInstance().getReactInstanceManager();
|
|
@@ -100,7 +104,7 @@ public class ViewPagerAdapter extends PagerAdapter implements TabLayout.OnTabSel
|
100
|
104
|
Screen screen = screenStacks.get(position).peek();
|
101
|
105
|
params.putString(Screen.KEY_NAVIGATOR_EVENT_ID, screen.navigatorEventId);
|
102
|
106
|
|
103
|
|
-// mToolbar.setupToolbarButtonsAsync(mScreens.get(position));
|
|
107
|
+ mToolbar.setupToolbarButtonsAsync(screenStacks.get(position).peek());
|
104
|
108
|
|
105
|
109
|
RctManager.getInstance().sendEvent(EVENT_ON_TAB_SELECTED, screen.navigatorEventId, params);
|
106
|
110
|
}
|
|
@@ -114,4 +118,8 @@ public class ViewPagerAdapter extends PagerAdapter implements TabLayout.OnTabSel
|
114
|
118
|
public void onTabReselected(TabLayout.Tab tab) {
|
115
|
119
|
|
116
|
120
|
}
|
|
121
|
+
|
|
122
|
+ public String getNavID(int position) {
|
|
123
|
+ return navIDs.get(position);
|
|
124
|
+ }
|
117
|
125
|
}
|