android底部导航

效果图

1.先导包,在Gradle 加上这个:
compile ‘com.roughike:bottom-bar:2.0.2’
2.menu下button_menu.xml
`

public class MainActivity extends AppCompatActivity {
    private HomeFragment mHomeFragment;
    private ChatFragment mQuestionFragment;
    private ProfileFragment mProfileFragment;
    private FragmentManager mFragmentManager;
    private FragmentTransaction mTransaction;
    private BottomBar mBottomBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mFragmentManager =  getSupportFragmentManager();
        mBottomBar = BottomBar.attach(this,savedInstanceState);
        mBottomBar.setItems(R.menu.bottombar_menu);
        mBottomBar.selectTabAtPosition(0,false);
        mBottomBar.setActiveTabColor("#002244");
        mBottomBar.setOnMenuTabClickListener(new OnMenuTabClickListener() {
            @Override
            public void onMenuTabSelected(@IdRes int menuItemId) {
                mTransaction = mFragmentManager.beginTransaction();
                hideAllFragments(mTransaction);
                if(menuItemId == R.id.navigation_tab_home){
                    showHomeFragment();
                }else if(menuItemId == R.id.navigation_tab_Question){
                    showQuesTionFragment();
                }else if(menuItemId == R.id.navigation_tab_wo){
                    showProfileFragment();
                }
                mTransaction.commit();
            }

            @Override
            public void onMenuTabReSelected(@IdRes int menuItemId) {

            }
        });
    }



4.隐藏所有的fragment,并且取消所有的底部导航栏的icon的高亮状态

  private void hideAllFragments(FragmentTransaction transaction) {
        if (mHomeFragment != null) {
            transaction.hide(mHomeFragment);
        }
        if (mQuestionFragment != null) {
            transaction.hide(mQuestionFragment);
        }
        if (mProfileFragment != null) {
            transaction.hide(mProfileFragment);
        }
    }

    @Override
    public void onBackPressed() {
        // super.onBackPressed();   不要调用父类的方法
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addCategory(Intent.CATEGORY_HOME);
        startActivity(intent);
    }

作者:王燕霞
原文链接:https://blog.csdn.net/be_me/article/details/80822331

猜你喜欢

转载自blog.csdn.net/fjnu_se/article/details/80880832