react-native-navigation的迁移库

ChildControllersRegistry.java 725B

1234567891011121314151617181920212223242526272829
  1. package com.reactnativenavigation.viewcontrollers;
  2. import java.util.ArrayDeque;
  3. public class ChildControllersRegistry {
  4. private ArrayDeque<ChildController> children = new ArrayDeque<>();
  5. public void onViewAppeared(ChildController child) {
  6. children.push(child);
  7. }
  8. public void onViewDisappear(ChildController child) {
  9. if (isTopChild(child)) {
  10. children.pop();
  11. if (!children.isEmpty()) children.peek().onViewBroughtToFront();
  12. } else {
  13. children.remove(child);
  14. }
  15. }
  16. private boolean isTopChild(ChildController child) {
  17. return children.peek().equals(child);
  18. }
  19. public int size() {
  20. return children.size();
  21. }
  22. }