react-native-navigation的迁移库

SingleScreenActivity.java 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.reactnativenavigation.activities;
  2. import android.support.v7.widget.Toolbar;
  3. import android.widget.FrameLayout;
  4. import com.reactnativenavigation.R;
  5. import com.reactnativenavigation.core.RctManager;
  6. import com.reactnativenavigation.core.objects.Screen;
  7. import com.reactnativenavigation.views.ScreenStack;
  8. /**
  9. * Created by guyc on 05/04/16.
  10. */
  11. public class SingleScreenActivity extends BaseReactActivity {
  12. public static final String EXTRA_SCREEN = "extraScreen";
  13. private Toolbar mToolbar;
  14. private ScreenStack mScreenStack;
  15. private String mNavigatorId;
  16. @Override
  17. protected void handleOnCreate() {
  18. mReactInstanceManager = RctManager.getInstance().getReactInstanceManager();
  19. setContentView(R.layout.single_screen_activity);
  20. mToolbar = (Toolbar) findViewById(R.id.toolbar);
  21. Screen screen = (Screen) getIntent().getSerializableExtra(EXTRA_SCREEN);
  22. mNavigatorId = screen.navigatorId;
  23. setupToolbar(screen.title);
  24. mScreenStack = new ScreenStack(this);
  25. FrameLayout contentFrame = (FrameLayout) findViewById(R.id.contentFrame);
  26. contentFrame.addView(mScreenStack);
  27. mScreenStack.push(screen);
  28. }
  29. private void setupToolbar(String title) {
  30. mToolbar.setTitle(title);
  31. setSupportActionBar(mToolbar);
  32. }
  33. @Override
  34. public void push(Screen screen) {
  35. super.push(screen);
  36. mScreenStack.push(screen);
  37. }
  38. @Override
  39. public Screen pop(String navigatorId) {
  40. super.pop(navigatorId);
  41. return mScreenStack.pop();
  42. }
  43. @Override
  44. public String getCurrentNavigatorId() {
  45. return mNavigatorId;
  46. }
  47. @Override
  48. protected Screen getCurrentScreen() {
  49. return mScreenStack.peek();
  50. }
  51. @Override
  52. public int getScreenStackSize() {
  53. return mScreenStack.getStackSize();
  54. }
  55. }