react-native-navigation的迁移库

StackLayout.java 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package com.reactnativenavigation.views;
  2. import android.annotation.SuppressLint;
  3. import android.content.Context;
  4. import android.widget.RelativeLayout;
  5. import com.reactnativenavigation.viewcontrollers.ReactViewCreator;
  6. import com.reactnativenavigation.viewcontrollers.TopBarButtonController;
  7. import com.reactnativenavigation.viewcontrollers.topbar.TopBarBackgroundViewController;
  8. import com.reactnativenavigation.viewcontrollers.topbar.TopBarController;
  9. import com.reactnativenavigation.views.titlebar.TitleBarReactViewCreator;
  10. import com.reactnativenavigation.views.topbar.TopBar;
  11. import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
  12. import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
  13. @SuppressLint("ViewConstructor")
  14. public class StackLayout extends RelativeLayout implements Component {
  15. private String stackId;
  16. public StackLayout(Context context, ReactViewCreator topBarButtonCreator, TitleBarReactViewCreator titleBarReactViewCreator, TopBarBackgroundViewController topBarBackgroundViewController, TopBarController topBarController, TopBarButtonController.OnClickListener topBarButtonClickListener, String stackId) {
  17. super(context);
  18. this.stackId = stackId;
  19. createLayout(topBarButtonCreator, titleBarReactViewCreator, topBarBackgroundViewController, topBarController, topBarButtonClickListener);
  20. setContentDescription("StackLayout");
  21. }
  22. private void createLayout(ReactViewCreator buttonCreator, TitleBarReactViewCreator titleBarReactViewCreator, TopBarBackgroundViewController topBarBackgroundViewController, TopBarController topBarController, TopBarButtonController.OnClickListener topBarButtonClickListener) {
  23. addView(topBarController.createView(getContext(), buttonCreator, titleBarReactViewCreator, topBarBackgroundViewController, topBarButtonClickListener, this), MATCH_PARENT, WRAP_CONTENT);
  24. }
  25. public String getStackId() {
  26. return stackId;
  27. }
  28. @Override
  29. public void drawBehindTopBar() {
  30. }
  31. @Override
  32. public void drawBelowTopBar(TopBar topBar) {
  33. }
  34. @Override
  35. public boolean isRendered() {
  36. return getChildCount() >= 2 &&
  37. getChildAt(1) instanceof Component &&
  38. ((Component) getChildAt(1)).isRendered();
  39. }
  40. }