Browse Source

Support drawScreenAboveBottomTabs

Guy Carmeli 8 years ago
parent
commit
a9e4e2c4bb

+ 11
- 1
android/app/src/main/java/com/reactnativenavigation/layouts/BottomTabsLayout.java View File

50
         ScreenStack newStack = new ScreenStack(activity, params.tabParams.get(position), this);
50
         ScreenStack newStack = new ScreenStack(activity, params.tabParams.get(position), this);
51
         screenStacks[position] = newStack;
51
         screenStacks[position] = newStack;
52
         newStack.setVisibility(INVISIBLE);
52
         newStack.setVisibility(INVISIBLE);
53
+        addScreenStack(newStack);
54
+    }
55
+
56
+    private void addScreenStack(ScreenStack newStack) {
53
         LayoutParams lp = new LayoutParams(MATCH_PARENT, MATCH_PARENT);
57
         LayoutParams lp = new LayoutParams(MATCH_PARENT, MATCH_PARENT);
54
-        lp.addRule(ABOVE, bottomTabs.getId());
58
+        if (shouldDrawScreenStackAboveBottomTabs(newStack)) {
59
+            lp.addRule(ABOVE, bottomTabs.getId());
60
+        }
55
         addView(newStack, 0, lp);
61
         addView(newStack, 0, lp);
56
     }
62
     }
57
 
63
 
64
+    private boolean shouldDrawScreenStackAboveBottomTabs(ScreenStack newStack) {
65
+        return newStack.getCurrentScreenStyleParams().drawScreenAboveBottomTabs;
66
+    }
67
+
58
     private void createBottomTabs() {
68
     private void createBottomTabs() {
59
         bottomTabs = new BottomTabs(getContext());
69
         bottomTabs = new BottomTabs(getContext());
60
         bottomTabs.addTabs(params.tabParams, this);
70
         bottomTabs.addTabs(params.tabParams, this);

+ 3
- 2
android/app/src/main/java/com/reactnativenavigation/params/StyleParams.java View File

39
     public Color topBarColor;
39
     public Color topBarColor;
40
     public boolean topBarHidden;
40
     public boolean topBarHidden;
41
     public boolean topTabsHidden;
41
     public boolean topTabsHidden;
42
+    public boolean drawScreenBelowTopBar;
42
 
43
 
43
     public boolean titleBarHidden;
44
     public boolean titleBarHidden;
44
     public Color titleBarTitleColor;
45
     public Color titleBarTitleColor;
50
     public int selectedTopTabIndicatorHeight;
51
     public int selectedTopTabIndicatorHeight;
51
     public Color selectedTopTabIndicatorColor;
52
     public Color selectedTopTabIndicatorColor;
52
 
53
 
54
+    public boolean drawScreenAboveBottomTabs;
55
+
53
     public boolean bottomTabsHidden;
56
     public boolean bottomTabsHidden;
54
     public boolean bottomTabsHiddenOnScroll;
57
     public boolean bottomTabsHiddenOnScroll;
55
     public Color bottomTabsColor;
58
     public Color bottomTabsColor;
57
     public Color bottomTabsButtonColor;
60
     public Color bottomTabsButtonColor;
58
 
61
 
59
     public Color navigationBarColor;
62
     public Color navigationBarColor;
60
-
61
-    public boolean drawScreenBelowTopBar;
62
 }
63
 }

+ 7
- 0
android/app/src/main/java/com/reactnativenavigation/params/parsers/StyleParamsParser.java View File

38
         //result.drawScreenBelowTopBar = params.getBoolean("drawBelowTopBar", isDefaultScreenBelowTopBar());
38
         //result.drawScreenBelowTopBar = params.getBoolean("drawBelowTopBar", isDefaultScreenBelowTopBar());
39
         result.drawScreenBelowTopBar = true;
39
         result.drawScreenBelowTopBar = true;
40
 
40
 
41
+        result.drawScreenAboveBottomTabs =
42
+                params.getBoolean("drawScreenAboveBottomTabs", getDefaultDrawScreenAboveBottomTabs());
43
+
41
         result.bottomTabsHidden = getBoolean("bottomTabsHidden", getDefaultBottomTabsHidden());
44
         result.bottomTabsHidden = getBoolean("bottomTabsHidden", getDefaultBottomTabsHidden());
42
         result.bottomTabsHiddenOnScroll =
45
         result.bottomTabsHiddenOnScroll =
43
                 getBoolean("bottomTabsHiddenOnScroll", getDefaultBottomTabsHiddenOnScroll());
46
                 getBoolean("bottomTabsHiddenOnScroll", getDefaultBottomTabsHiddenOnScroll());
51
         return result;
54
         return result;
52
     }
55
     }
53
 
56
 
57
+    private boolean getDefaultDrawScreenAboveBottomTabs() {
58
+        return AppStyle.appStyle == null || AppStyle.appStyle.drawScreenAboveBottomTabs;
59
+    }
60
+
54
     private StyleParams.Color getDefaultSelectedTopTabIndicatorColor() {
61
     private StyleParams.Color getDefaultSelectedTopTabIndicatorColor() {
55
         return AppStyle.appStyle == null ? new StyleParams.Color() : AppStyle.appStyle.selectedTopTabIndicatorColor;
62
         return AppStyle.appStyle == null ? new StyleParams.Color() : AppStyle.appStyle.selectedTopTabIndicatorColor;
56
     }
63
     }

+ 2
- 0
src/deprecated/platformSpecificDeprecated.android.js View File

109
     selectedTopTabIndicatorHeight: originalStyleObject.selectedTopTabIndicatorHeight,
109
     selectedTopTabIndicatorHeight: originalStyleObject.selectedTopTabIndicatorHeight,
110
     selectedTopTabIndicatorColor: originalStyleObject.selectedTopTabIndicatorColor,
110
     selectedTopTabIndicatorColor: originalStyleObject.selectedTopTabIndicatorColor,
111
 
111
 
112
+    drawScreenAboveBottomTabs: !originalStyleObject.drawUnderTabBar,
113
+
112
     bottomTabsColor: originalStyleObject.tabBarBackgroundColor,
114
     bottomTabsColor: originalStyleObject.tabBarBackgroundColor,
113
     bottomTabsButtonColor: originalStyleObject.tabBarButtonColor,
115
     bottomTabsButtonColor: originalStyleObject.tabBarButtonColor,
114
     bottomTabsSelectedButtonColor: originalStyleObject.tabBarSelectedButtonColor,
116
     bottomTabsSelectedButtonColor: originalStyleObject.tabBarSelectedButtonColor,