android底部导航

本文介绍了如何在Android应用中实现底部导航栏,包括引入依赖库`com.roughike:bottom-bar:2.0.2`,在menu资源文件中配置button_menu.xml,以及隐藏Fragment并取消底部导航图标高亮的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图

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);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值