Daniel Zlotin 8 years ago
parent
commit
d596390080

+ 21
- 5
android/app/src/main/java/com/reactnativenavigation/layouts/LayoutFactory.java View File

1
 package com.reactnativenavigation.layouts;
1
 package com.reactnativenavigation.layouts;
2
 
2
 
3
 import android.app.Activity;
3
 import android.app.Activity;
4
+import android.support.annotation.NonNull;
4
 import android.support.v4.widget.DrawerLayout;
5
 import android.support.v4.widget.DrawerLayout;
5
 import android.view.Gravity;
6
 import android.view.Gravity;
6
 import android.widget.FrameLayout;
7
 import android.widget.FrameLayout;
7
 import android.widget.LinearLayout;
8
 import android.widget.LinearLayout;
8
 
9
 
10
+import com.aurelhubert.ahbottomnavigation.AHBottomNavigation;
11
+
9
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
12
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
10
 import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
13
 import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
11
 
14
 
15
     }
18
     }
16
 
19
 
17
     public static class BottomTabsParams {
20
     public static class BottomTabsParams {
18
-
21
+        private boolean enabled;
19
     }
22
     }
20
 
23
 
21
     public static class Params {
24
     public static class Params {
27
         LinearLayout root = createRoot(activity);
30
         LinearLayout root = createRoot(activity);
28
         FrameLayout content = createContent(activity);
31
         FrameLayout content = createContent(activity);
29
         if (params.sideMenu.enabled) {
32
         if (params.sideMenu.enabled) {
30
-            createSideMenu(activity, content);
33
+            DrawerLayout sideMenu = createSideMenu(activity, content);
34
+            root.addView(sideMenu, new LinearLayout.LayoutParams(MATCH_PARENT, 0, 1));
35
+        } else {
36
+            root.addView(content, new LinearLayout.LayoutParams(MATCH_PARENT, 0, 1));
37
+        }
38
+        if (params.bottomTabs.enabled) {
39
+            AHBottomNavigation bottomTabs = createBottomTabs(activity);
40
+            root.addView(bottomTabs, new LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT));
31
         }
41
         }
42
+
32
         return null;
43
         return null;
33
     }
44
     }
34
 
45
 
46
+    @NonNull
47
+    private static AHBottomNavigation createBottomTabs(Activity activity) {
48
+        return new AHBottomNavigation(activity);
49
+    }
50
+
35
     private static LinearLayout createRoot(Activity activity) {
51
     private static LinearLayout createRoot(Activity activity) {
36
         LinearLayout root = new LinearLayout(activity);
52
         LinearLayout root = new LinearLayout(activity);
37
         root.setOrientation(LinearLayout.VERTICAL);
53
         root.setOrientation(LinearLayout.VERTICAL);
38
         return root;
54
         return root;
39
     }
55
     }
40
 
56
 
41
-    private static void createSideMenu(Activity activity, FrameLayout content) {
57
+    private static DrawerLayout createSideMenu(Activity activity, FrameLayout content) {
42
         DrawerLayout drawerLayout = new DrawerLayout(activity);
58
         DrawerLayout drawerLayout = new DrawerLayout(activity);
43
         FrameLayout drawerContent = new FrameLayout(activity);
59
         FrameLayout drawerContent = new FrameLayout(activity);
44
         drawerLayout.addView(content, new DrawerLayout.LayoutParams(MATCH_PARENT, 0, 1));
60
         drawerLayout.addView(content, new DrawerLayout.LayoutParams(MATCH_PARENT, 0, 1));
45
         DrawerLayout.LayoutParams drawerContentParams = new DrawerLayout.LayoutParams(WRAP_CONTENT, MATCH_PARENT);
61
         DrawerLayout.LayoutParams drawerContentParams = new DrawerLayout.LayoutParams(WRAP_CONTENT, MATCH_PARENT);
46
         drawerContentParams.gravity = Gravity.START;
62
         drawerContentParams.gravity = Gravity.START;
47
         drawerLayout.addView(drawerContent, drawerContentParams);
63
         drawerLayout.addView(drawerContent, drawerContentParams);
64
+        return drawerLayout;
48
     }
65
     }
49
 
66
 
50
     private static FrameLayout createContent(Activity activity) {
67
     private static FrameLayout createContent(Activity activity) {
51
-        FrameLayout content = new FrameLayout(activity);
52
-        return content;
68
+        return new FrameLayout(activity);
53
     }
69
     }
54
 }
70
 }