Android底部导航栏BottomNavigationView的使用

小记:关于Android底部导航栏我已知的大致有三种实现方式。

          1.利用radiogroup+framelayout实现

          2.利用LinearLayout+framelayout实现

          3.利用BottomNavigationView实现

         今天记录下使用BottomNavigationView的使用方式。

编写xml布局:




    
    

    app:itemTextColor="@drawable/main_bottom_color"
    app:itemIconTint="@drawable/main_bottom_color"

用于点击改变导航栏文字颜色使用



   
   
app:menu="@menu/menu_navigation"

需要自己手动在res文件中进行新增

Android底部导航栏BottomNavigationView的使用_第1张图片



   
   

 icon在drawable中进行编写,点击图片发生改变



    
    

xml编码完成,写activity代码:

package com.example.bottomnavigationdemo;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.MenuItem;

import com.google.android.material.bottomnavigation.BottomNavigationView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private MainFragment mainFragment;
    private MeFragment meFragment;
    private List fragments = new ArrayList<>();
    private BottomNavigationView bottomNavigationView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mainFragment = new MainFragment();
        meFragment = new MeFragment();
        fragments.add(mainFragment);
        fragments.add(meFragment);
        //默认展示菜单页
        setFragemnt(0);
        bottomNavigationView = findViewById(R.id.bottmNavigation);
        bottomNavigationView.setOnNavigationItemSelectedListener(item -> {
            switch (item.getItemId()) {
                case R.id.menu_mian:
                    setFragemnt(0);
                    break;
                case R.id.menu_me:
                    setFragemnt(1);
                    break;
            }
            return true;
        });
    }

    private void setFragemnt(int pos) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        for (Fragment fragment : fragments) {
            if (!fragment.isAdded()) {
                ft.add(R.id.frameLayout,fragment);
            }
            ft.hide(fragment);
        }
        ft.show(fragments.get(pos));
        ft.commit();
    }
}

编码完成,效果展示

Android底部导航栏BottomNavigationView的使用_第2张图片

 

你可能感兴趣的:(android,android)