react-native-navigation的迁移库

Fab.java 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.reactnativenavigation.views;
  2. import android.content.Context;
  3. import android.graphics.drawable.Drawable;
  4. import android.support.annotation.NonNull;
  5. import com.github.clans.fab.FloatingActionButton;
  6. import com.reactnativenavigation.anim.FabAnimator;
  7. import com.reactnativenavigation.anim.FabCollapseBehaviour;
  8. import com.reactnativenavigation.interfaces.ScrollEventListener;
  9. import com.reactnativenavigation.utils.ImageLoader;
  10. import com.reactnativenavigation.utils.ImageLoadingListenerAdapter;
  11. import java.util.Collections;
  12. import java.util.List;
  13. public class Fab extends FloatingActionButton implements FabAnimator {
  14. private String id = "";
  15. private FabCollapseBehaviour collapseBehaviour;
  16. public Fab(Context context, String id) {
  17. super(context);
  18. collapseBehaviour = new FabCollapseBehaviour(this);
  19. this.id = id;
  20. }
  21. public void applyIcon(String icon) {
  22. new ImageLoader().loadIcons(getContext(), Collections.singletonList(icon), new ImageLoadingListenerAdapter() {
  23. @Override
  24. public void onComplete(@NonNull List<Drawable> drawables) {
  25. setImageDrawable(drawables.get(0));
  26. }
  27. @Override
  28. public void onError(Throwable error) {
  29. error.printStackTrace();
  30. }
  31. });
  32. }
  33. @Override
  34. public boolean equals(Object o) {
  35. if (this == o) return true;
  36. if (o == null || getClass() != o.getClass()) return false;
  37. Fab fab = (Fab) o;
  38. return id.equals(fab.id);
  39. }
  40. @Override
  41. public int hashCode() {
  42. return id.hashCode();
  43. }
  44. @Override
  45. public void show() {
  46. show(true);
  47. }
  48. @Override
  49. public void hide() {
  50. hide(true);
  51. }
  52. public void enableCollapse(@NonNull ScrollEventListener scrollEventListener) {
  53. collapseBehaviour.enableCollapse(scrollEventListener);
  54. }
  55. public void disableCollapse() {
  56. collapseBehaviour.disableCollapse();
  57. }
  58. public String getFabId() {
  59. return id;
  60. }
  61. }