react-native-navigation的迁移库

TitleBarReactViewController.java 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.reactnativenavigation.viewcontrollers;
  2. import android.app.Activity;
  3. import com.reactnativenavigation.parse.Component;
  4. import com.reactnativenavigation.parse.Options;
  5. import com.reactnativenavigation.react.events.ComponentType;
  6. import com.reactnativenavigation.utils.CompatUtils;
  7. import com.reactnativenavigation.viewcontrollers.viewcontrolleroverlay.ViewControllerOverlay;
  8. import com.reactnativenavigation.views.titlebar.TitleBarReactView;
  9. import com.reactnativenavigation.views.titlebar.TitleBarReactViewCreator;
  10. public class TitleBarReactViewController extends ViewController<TitleBarReactView> {
  11. private final TitleBarReactViewCreator reactViewCreator;
  12. private Component component;
  13. public TitleBarReactViewController(Activity activity, TitleBarReactViewCreator reactViewCreator) {
  14. super(activity, CompatUtils.generateViewId() + "", new YellowBoxDelegate(), new Options(), new ViewControllerOverlay(activity));
  15. this.reactViewCreator = reactViewCreator;
  16. }
  17. @Override
  18. public void onViewAppeared() {
  19. super.onViewAppeared();
  20. if (!isDestroyed()) {
  21. runOnPreDraw(view -> view.setLayoutParams(view.getLayoutParams()));
  22. getView().sendComponentStart(ComponentType.Title);
  23. }
  24. }
  25. @Override
  26. public void onViewDisappear() {
  27. getView().sendComponentStop(ComponentType.Title);
  28. super.onViewDisappear();
  29. }
  30. @Override
  31. protected TitleBarReactView createView() {
  32. return reactViewCreator.create(getActivity(), component.componentId.get(), component.name.get());
  33. }
  34. @Override
  35. public void sendOnNavigationButtonPressed(String buttonId) {
  36. }
  37. public void setComponent(Component component) {
  38. this.component = component;
  39. }
  40. }