react-native-navigation的迁移库

TopBar.java 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.reactnativenavigation.views;
  2. import android.content.Context;
  3. import android.support.design.widget.AppBarLayout;
  4. import android.support.design.widget.TabLayout;
  5. import com.reactnativenavigation.params.ScreenStyleParams;
  6. import com.reactnativenavigation.params.TitleBarButtonParams;
  7. import com.reactnativenavigation.utils.ViewUtils;
  8. import java.util.List;
  9. public class TopBar extends AppBarLayout {
  10. private TitleBar titleBar;
  11. private TabLayout tabLayout;
  12. public TopBar(Context context) {
  13. super(context);
  14. setFitsSystemWindows(true);
  15. setId(ViewUtils.generateViewId());
  16. }
  17. public void addTitleBarAndSetButtons(List<TitleBarButtonParams> buttons, String navigatorEventId) {
  18. titleBar = new TitleBar(getContext());
  19. addView(titleBar);
  20. titleBar.setButtons(buttons, navigatorEventId);
  21. }
  22. public void setTitle(String title) {
  23. titleBar.setTitle(title);
  24. }
  25. public void setStyle(ScreenStyleParams styleParams) {
  26. if (styleParams.topBarColor.hasColor()) {
  27. setBackgroundColor(styleParams.topBarColor.getColor());
  28. }
  29. setVisibility(styleParams.topBarHidden ? GONE : VISIBLE);
  30. titleBar.setVisibility(styleParams.titleBarHidden ? GONE : VISIBLE);
  31. }
  32. public void setTitleBarButtons(String navigatorEventId, List<TitleBarButtonParams> titleBarButtons) {
  33. titleBar.setButtons(titleBarButtons, navigatorEventId);
  34. }
  35. public TabLayout initTabs() {
  36. tabLayout = new TabLayout(getContext());
  37. addView(tabLayout);
  38. return tabLayout;
  39. }
  40. }