|
@@ -36,7 +36,21 @@ public class BottomTabsLayout extends RelativeLayout implements Layout, AHBottom
|
36
|
36
|
private void createLayout() {
|
37
|
37
|
createBottomTabs();
|
38
|
38
|
addBottomTabsToScreen();
|
39
|
|
- addInitialScreen();
|
|
39
|
+ addScreenStacks();
|
|
40
|
+ showInitialScreenStack();
|
|
41
|
+ }
|
|
42
|
+
|
|
43
|
+ private void addScreenStacks() {
|
|
44
|
+ for (int i = 0; i < screenStacks.length; i++) {
|
|
45
|
+ createAndAddScreenStack(i);
|
|
46
|
+ }
|
|
47
|
+ }
|
|
48
|
+
|
|
49
|
+ private void createAndAddScreenStack(int position) {
|
|
50
|
+ ScreenStack newStack = new ScreenStack(activity, params.tabParams.get(position));
|
|
51
|
+ screenStacks[position] = newStack;
|
|
52
|
+ newStack.setVisibility(GONE);
|
|
53
|
+ addView(newStack, 0, new LayoutParams(MATCH_PARENT, MATCH_PARENT));
|
40
|
54
|
}
|
41
|
55
|
|
42
|
56
|
private void createBottomTabs() {
|
|
@@ -51,8 +65,8 @@ public class BottomTabsLayout extends RelativeLayout implements Layout, AHBottom
|
51
|
65
|
addView(bottomTabs, lp);
|
52
|
66
|
}
|
53
|
67
|
|
54
|
|
- private void addInitialScreen() {
|
55
|
|
- createAndAddScreenStack(0);
|
|
68
|
+ private void showInitialScreenStack() {
|
|
69
|
+ showStack(screenStacks[0]);
|
56
|
70
|
}
|
57
|
71
|
|
58
|
72
|
private void setBottomTabsStyle() {
|
|
@@ -143,28 +157,20 @@ public class BottomTabsLayout extends RelativeLayout implements Layout, AHBottom
|
143
|
157
|
|
144
|
158
|
@Override
|
145
|
159
|
public void onTabSelected(int position, boolean wasSelected) {
|
146
|
|
- removeCurrentStack();
|
|
160
|
+ hideCurrentStack();
|
147
|
161
|
|
148
|
162
|
ScreenStack newStack = screenStacks[position];
|
149
|
|
- if (newStack == null) {
|
150
|
|
- createAndAddScreenStack(position);
|
151
|
|
- } else {
|
152
|
|
- addView(newStack, 0, new LayoutParams(MATCH_PARENT, MATCH_PARENT));
|
153
|
|
- newStack.preventMountAfterReatachedToWindow();
|
154
|
|
- }
|
|
163
|
+ showStack(newStack);
|
155
|
164
|
currentStackIndex = position;
|
156
|
165
|
}
|
157
|
166
|
|
158
|
|
- private void createAndAddScreenStack(int position) {
|
159
|
|
- ScreenStack newStack = new ScreenStack(activity, params.tabParams.get(position));
|
160
|
|
- screenStacks[position] = newStack;
|
161
|
|
- addView(newStack, 0, new LayoutParams(MATCH_PARENT, MATCH_PARENT));
|
|
167
|
+ private void showStack(ScreenStack newStack) {
|
|
168
|
+ newStack.setVisibility(VISIBLE);
|
162
|
169
|
}
|
163
|
170
|
|
164
|
|
- private void removeCurrentStack() {
|
|
171
|
+ private void hideCurrentStack() {
|
165
|
172
|
ScreenStack currentScreenStack = getCurrentScreenStack();
|
166
|
|
- currentScreenStack.preventUnmountOnDetachedFromWindow();
|
167
|
|
- removeView(currentScreenStack);
|
|
173
|
+ currentScreenStack.setVisibility(GONE);
|
168
|
174
|
}
|
169
|
175
|
|
170
|
176
|
private ScreenStack getCurrentScreenStack() {
|