Android底部導(dǎo)航欄BottomNavigationView怎么用

小億
205
2023-10-26 13:14:33

在Android中,可以使用BottomNavigationView來(lái)創(chuàng)建底部導(dǎo)航欄。

首先,在xml布局文件中添加BottomNavigationView控件:

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    app:menu="@menu/bottom_navigation_menu" />

接下來(lái),在創(chuàng)建Activity或Fragment的代碼中,可以使用以下方法設(shè)置底部導(dǎo)航欄的選項(xiàng)和監(jiān)聽(tīng)器:

BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);

// 設(shè)置默認(rèn)選中項(xiàng)
bottomNavigationView.setSelectedItemId(R.id.menu_item1);

// 監(jiān)聽(tīng)選項(xiàng)點(diǎn)擊事件
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case R.id.menu_item1:
                // 處理點(diǎn)擊菜單項(xiàng)1的邏輯
                return true;
            case R.id.menu_item2:
                // 處理點(diǎn)擊菜單項(xiàng)2的邏輯
                return true;
            case R.id.menu_item3:
                // 處理點(diǎn)擊菜單項(xiàng)3的邏輯
                return true;
        }
        return false;
    }
});

最后,需要在res/menu目錄下創(chuàng)建一個(gè)bottom_navigation_menu.xml文件,用來(lái)定義底部導(dǎo)航欄的選項(xiàng):

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_item1"
        android:icon="@drawable/ic_menu_item1"
        android:title="Item 1" />
    <item
        android:id="@+id/menu_item2"
        android:icon="@drawable/ic_menu_item2"
        android:title="Item 2" />
    <item
        android:id="@+id/menu_item3"
        android:icon="@drawable/ic_menu_item3"
        android:title="Item 3" />
</menu>

其中,drawable目錄下的ic_menu_item1、ic_menu_item2和ic_menu_item3是自定義的圖標(biāo)資源。

通過(guò)以上步驟,就可以使用BottomNavigationView創(chuàng)建底部導(dǎo)航欄,并處理選項(xiàng)的點(diǎn)擊事件。

0