package com.sxjs.jd.composition.main; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.FragmentManager; import android.widget.FrameLayout; import com.sxjs.common.widget.bottomnavigation.BadgeItem; import com.sxjs.common.widget.bottomnavigation.BottomNavigationBar; import com.sxjs.common.widget.bottomnavigation.BottomNavigationItem; import com.sxjs.jd.R; import com.sxjs.common.base.BaseActivity; import com.sxjs.jd.composition.main.classificationfragment.ClassificationFragment; import com.sxjs.jd.composition.main.findfragment.FindFragment; import com.sxjs.jd.composition.main.homefragment.MainHomeFragment; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends BaseActivity implements MainContract.View, BottomNavigationBar.OnTabSelectedListener { @Inject MainPresenter presenter; @BindView(R.id.bottom_navigation_bar) BottomNavigationBar bottomNavigationBar; @BindView(R.id.main_container) FrameLayout mainContainer; private MainHomeFragment mMainHomeFragment; private ClassificationFragment mClassificationFragment; private FragmentManager mFragmentManager; private FindFragment mFindFragment; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); unbinder = ButterKnife.bind(this); mFragmentManager = getSupportFragmentManager(); initView(); initData(); } public void initView() { mMainHomeFragment = (MainHomeFragment) mFragmentManager.findFragmentByTag("home_fg"); mClassificationFragment = (ClassificationFragment) mFragmentManager.findFragmentByTag("class_fg"); mFindFragment = (FindFragment) mFragmentManager.findFragmentByTag("find_fg"); if(mMainHomeFragment == null){ mMainHomeFragment = MainHomeFragment.newInstance(); addFragment(R.id.main_container, mMainHomeFragment, "home_fg"); } if(mClassificationFragment == null){ mClassificationFragment = ClassificationFragment.newInstance(); addFragment(R.id.main_container, mClassificationFragment, "class_fg"); } if(mFindFragment == null){ mFindFragment = FindFragment.newInstance(); addFragment(R.id.main_container, mFindFragment, "find_fg"); } mFragmentManager.beginTransaction().show(mMainHomeFragment).hide(mClassificationFragment).hide(mFindFragment) .commitAllowingStateLoss(); DaggerMainActivityComponent.builder() .appComponent(getAppComponent()) .mainPresenterModule(new MainPresenterModule(this)) .build() .inject(this); initBottomNavigation(); } private void initBottomNavigation() { BadgeItem numberBadgeItem = new BadgeItem() .setBorderWidth(4) .setBackgroundColorResource(R.color.colorAccent) .setText("99+") .setHideOnSelect(false); bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED); //bottomNavigationBar.setMode(BottomNavigationBar.MODE_SHIFTING); bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC); //bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE); //bottomNavigationBar.setAutoHideEnabled(true); bottomNavigationBar .addItem(new BottomNavigationItem(R.drawable.axh, "").setInactiveIconResource(R.drawable.axg).setActiveColorResource(R.color.colorAccent)) .addItem(new BottomNavigationItem(R.drawable.axd, "").setInactiveIconResource(R.drawable.axc).setActiveColorResource(R.color.colorAccent)) .addItem(new BottomNavigationItem(R.drawable.axf, "").setInactiveIconResource(R.drawable.axe).setActiveColorResource(R.color.colorAccent)) .addItem(new BottomNavigationItem(R.drawable.axb, "").setInactiveIconResource(R.drawable.axa).setActiveColorResource(R.color.colorAccent).setBadgeItem(numberBadgeItem)) .addItem(new BottomNavigationItem(R.drawable.axj, "").setInactiveIconResource(R.drawable.axi).setActiveColorResource(R.color.colorAccent)) .setFirstSelectedPosition(0) .initialise(); bottomNavigationBar.setTabSelectedListener(this); } private static final String TAG = "MainActivity"; public void initData() { presenter.getText(); } private String text; @Override public void setText(String text) { this.text = text; } @Override public void showProgressDialogView() { showProgressDialog(); } @Override public void hiddenProgressDialogView() { hiddenProgressDialog(); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("text", text); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); if (savedInstanceState != null) { String text = savedInstanceState.getString("text"); this.text = text; } } @Override public void onTabSelected(int position) { if(position == 0){ mFragmentManager.beginTransaction().hide(mFindFragment).hide(mClassificationFragment).show(mMainHomeFragment) .commitAllowingStateLoss(); } else if(position == 1){ mFragmentManager.beginTransaction().hide(mFindFragment).hide(mMainHomeFragment).show(mClassificationFragment) .commitAllowingStateLoss(); } else if(position == 2){ mFragmentManager.beginTransaction().hide(mClassificationFragment).hide(mMainHomeFragment).show(mFindFragment) .commitAllowingStateLoss(); } } @Override public void onTabUnselected(int position) { } @Override public void onTabReselected(int position) { } @Override protected void onStart() { super.onStart(); } @Override protected void onDestroy() { super.onDestroy(); if (presenter != null) { presenter.destory(); } } }