52c01f8a3b0fa153b66bb20cd7c37b544dcf9e44.svn-base 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package eVVM.apk.ui.home;
  2. import android.support.annotation.NonNull;
  3. import android.support.design.widget.BottomNavigationView;
  4. import android.support.v4.view.ViewPager;
  5. import android.view.KeyEvent;
  6. import android.view.MenuItem;
  7. import com.hjq.base.BaseFragmentAdapter;
  8. import java.util.ArrayList;
  9. import butterknife.BindView;
  10. import eVVM.apk.R;
  11. import eVVM.apk.common.MyActivity;
  12. import eVVM.apk.common.MyLazyFragment;
  13. import eVVM.apk.helper.ActivityStackManager;
  14. import eVVM.apk.helper.DoubleClickHelper;
  15. import eVVM.apk.helper.SPUtils;
  16. import eVVM.apk.ui.My.MyFragment;
  17. import eVVM.apk.ui.bean.VnDetailBean;
  18. import eVVM.apk.ui.home.uploadChip.UploadChipContract;
  19. import eVVM.apk.ui.home.uploadChip.UploadChipPresenter;
  20. import eVVM.apk.ui.vaccination.FirstFragment;
  21. import eVVM.apk.ui.toreview.ToreviewFragment;
  22. import eVVM.apk.ui.vaccination.save.ChipModel;
  23. public class HomeActivity extends BaseGPSActivity implements ViewPager.OnPageChangeListener, UploadChipContract.View, BottomNavigationView.OnNavigationItemSelectedListener{
  24. @BindView(R.id.vp_home_pager)
  25. ViewPager mViewPager;
  26. @BindView(R.id.bv_home_navigation)
  27. BottomNavigationView mBottomNavigationView;
  28. private BaseFragmentAdapter<MyLazyFragment> mPagerAdapter;
  29. @Override
  30. protected int getLayoutId() {
  31. return R.layout.activity_home;
  32. }
  33. @Override
  34. protected int getTitleId() {
  35. return 0;
  36. }
  37. @Override
  38. protected void initView() {
  39. mViewPager.addOnPageChangeListener(this);
  40. // 不使用图标默认变色
  41. mBottomNavigationView.setItemIconTintList(null);
  42. mBottomNavigationView.setOnNavigationItemSelectedListener(this);
  43. }
  44. @Override
  45. protected void initData() {
  46. mPagerAdapter = new BaseFragmentAdapter<>(this);
  47. mPagerAdapter.addFragment(FirstFragment.newInstance());
  48. mPagerAdapter.addFragment(ToreviewFragment.newInstance());
  49. mPagerAdapter.addFragment(MyFragment.newInstance());
  50. mViewPager.setAdapter(mPagerAdapter);
  51. // 限制页面数量
  52. mViewPager.setOffscreenPageLimit(mPagerAdapter.getCount());
  53. }
  54. /**
  55. * {@link BottomNavigationView.OnNavigationItemSelectedListener}
  56. */
  57. @Override
  58. public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
  59. switch (menuItem.getItemId()) {
  60. case R.id.menu_home:
  61. //mViewPager.setCurrentItem(0);
  62. //mViewPager.setCurrentItem(0, false);
  63. // 如果切换的是相邻之间的 Item 就显示切换动画,如果不是则不要动画
  64. mViewPager.setCurrentItem(0, mViewPager.getCurrentItem() == 1);
  65. return true;
  66. case R.id.home_message:
  67. //mViewPager.setCurrentItem(1);
  68. //mViewPager.setCurrentItem(1, false);
  69. mViewPager.setCurrentItem(1, mViewPager.getCurrentItem() == 0 || mViewPager.getCurrentItem() == 2);
  70. return true;
  71. case R.id.home_me:
  72. //mViewPager.setCurrentItem(2);
  73. //mViewPager.setCurrentItem(2, false);
  74. mViewPager.setCurrentItem(2, mViewPager.getCurrentItem() == 1 || mViewPager.getCurrentItem() == 3);
  75. return true;
  76. }
  77. return false;
  78. }
  79. @Override
  80. public boolean onKeyDown(int keyCode, KeyEvent event) {
  81. // 回调当前 Fragment 的 onKeyDown 方法
  82. if (mPagerAdapter.getCurrentFragment().onKeyDown(keyCode, event)) {
  83. return true;
  84. }
  85. return super.onKeyDown(keyCode, event);
  86. }
  87. @Override
  88. public void onBackPressed() {
  89. if (DoubleClickHelper.isOnDoubleClick()) {
  90. //移动到上一个任务栈,避免侧滑引起的不良反应
  91. moveTaskToBack(false);
  92. postDelayed(new Runnable() {
  93. @Override
  94. public void run() {
  95. // 进行内存优化,销毁掉所有的界面
  96. ActivityStackManager.getInstance().finishAllActivities();
  97. // 销毁进程
  98. System.exit(0);
  99. }
  100. }, 300);
  101. } else {
  102. toast(getResources().getString(R.string.home_exit_hint));
  103. }
  104. }
  105. @Override
  106. public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
  107. }
  108. @Override
  109. public void onPageSelected(int position) {
  110. switch (position) {
  111. case 0:
  112. mBottomNavigationView.setSelectedItemId(R.id.menu_home);
  113. break;
  114. case 1:
  115. mBottomNavigationView.setSelectedItemId(R.id.home_message);
  116. break;
  117. case 2:
  118. mBottomNavigationView.setSelectedItemId(R.id.home_me);
  119. break;
  120. }
  121. }
  122. @Override
  123. public void onPageScrollStateChanged(int i) {
  124. }
  125. @Override
  126. protected void onDestroy() {
  127. mViewPager.removeOnPageChangeListener(this);
  128. mViewPager.setAdapter(null);
  129. mBottomNavigationView.setOnNavigationItemSelectedListener(null);
  130. super.onDestroy();
  131. }
  132. @Override
  133. public boolean isSupportSwipeBack() {
  134. // 不使用侧滑功能
  135. return false;
  136. }
  137. @Override
  138. public void uploadChipError(String msg) {
  139. }
  140. @Override
  141. public void uploadChipSuccess(VnDetailBean data) {
  142. }
  143. }