react-native-navigation的迁移库

SnackbarContainer.java 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.reactnativenavigation.views;
  2. import android.content.Context;
  3. import android.support.design.widget.CoordinatorLayout;
  4. import com.reactnativenavigation.events.ScreenChangeBroadcastReceiver;
  5. import com.reactnativenavigation.params.SnackbarParams;
  6. public class SnackbarContainer extends CoordinatorLayout implements Snakbar.OnDismissListener, ScreenChangeBroadcastReceiver.OnScreenChangeListener {
  7. private Snakbar snakbar;
  8. private ScreenChangeBroadcastReceiver screenChangeBroadcastReceiver;
  9. public SnackbarContainer(Context context) {
  10. super(context);
  11. registerTabSelectedReceiver();
  12. }
  13. private void registerTabSelectedReceiver() {
  14. screenChangeBroadcastReceiver = new ScreenChangeBroadcastReceiver(this);
  15. screenChangeBroadcastReceiver.register();
  16. }
  17. public void showSnackbar(final String navigatorEventId, final SnackbarParams params) {
  18. snakbar = new Snakbar(this, navigatorEventId, params);
  19. snakbar.show();
  20. }
  21. public void onScreenChange() {
  22. if (snakbar != null) {
  23. snakbar.dismiss();
  24. snakbar = null;
  25. }
  26. }
  27. @Override
  28. public void onDismiss() {
  29. snakbar = null;
  30. }
  31. public void destroy() {
  32. screenChangeBroadcastReceiver.unregister();
  33. }
  34. @Override
  35. public void onScreenChangeListener() {
  36. onScreenChange();
  37. }
  38. }