react-native-navigation的迁移库

TopTabs.java 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.reactnativenavigation.views.toptabs;
  2. import android.content.Context;
  3. import android.graphics.Typeface;
  4. import android.support.design.widget.TabLayout;
  5. import android.support.v4.view.ViewPager;
  6. import android.view.ViewManager;
  7. import com.reactnativenavigation.parse.params.Color;
  8. import com.reactnativenavigation.parse.params.Number;
  9. import com.reactnativenavigation.views.topbar.TopBar;
  10. public class TopTabs extends TabLayout {
  11. private final TopTabsStyleHelper styleHelper;
  12. public TopTabs(Context context) {
  13. super(context);
  14. styleHelper = new TopTabsStyleHelper(this);
  15. }
  16. public void setFontFamily(int tabIndex, Typeface fontFamily) {
  17. styleHelper.setFontFamily(tabIndex, fontFamily);
  18. }
  19. public int[] getSelectedTabColors() {
  20. return SELECTED_STATE_SET;
  21. }
  22. public int[] getDefaultTabColors() {
  23. return EMPTY_STATE_SET;
  24. }
  25. public void applyTopTabsColors(Color selectedTabColor, Color unselectedTabColor) {
  26. styleHelper.applyTopTabsColors(selectedTabColor, unselectedTabColor);
  27. }
  28. public void applyTopTabsFontSize(Number fontSize) {
  29. styleHelper.applyTopTabsFontSize(fontSize);
  30. }
  31. public void setVisibility(TopBar topBar, boolean visible) {
  32. if (visible && getTabCount() > 0) {
  33. if (getParent() == null) {
  34. topBar.addView(this, 1);
  35. }
  36. setVisibility(VISIBLE);
  37. } else {
  38. topBar.removeView(this);
  39. }
  40. }
  41. public void clear(ViewManager parent) {
  42. setupWithViewPager(null);
  43. parent.removeView(this);
  44. }
  45. public void init(ViewPager viewPager) {
  46. setupWithViewPager(viewPager);
  47. }
  48. }