返回

帶你從基礎開始製作花裡胡哨的 Flutter 底部選單

Android

在 Flutter 中製作一個引人注目的底部菜單

在 Flutter 中,底部菜單是一項至關重要的導航元素,可幫助使用者輕鬆在應用程序的不同頁面之間切換。儘管 Flutter 提供了內建的 BottomNavigationBar 控件,但我們也可以自訂代碼來製作更具吸引力的底部菜單。本教程將逐步指導你使用 Flutter 製作一個吸睛的底部菜單,並在過程中學習實用的技巧。

步驟 1:建立一個新的 Flutter 專案

首先,建立一個新的 Flutter 專案。可以使用以下指令建立:

flutter create bottom_navigation_bar

步驟 2:新增必要的依賴項

建立完 Flutter 專案後,需要新增一些必要的依賴項,包括:

  • flutter_svg:此依賴項可讓你使用 SVG 圖示。
  • bottom_navy_bar:此依賴項可讓你使用更進階的底部菜單控件。

pubspec.yaml 檔案中加入以下依賴項以進行安裝:

dependencies:
  flutter_svg: ^1.1.0
  bottom_navy_bar: ^6.0.0

步驟 3:建立底部菜單

接著,在 lib/main.dart 檔案中導入必要的函式庫。

import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:bottom_navy_bar/bottom_navy_bar.dart';

接下來,在 build() 方法中建立底部菜單。可以使用以下代碼:

BottomNavyBar(
  items: [
    BottomNavyBarItem(
      icon: SvgPicture.asset('assets/icons/home.svg'),
      title: Text('Home'),
      activeColor: Colors.blue,
    ),
    BottomNavyBarItem(
      icon: SvgPicture.asset('assets/icons/search.svg'),
      title: Text('Search'),
      activeColor: Colors.green,
    ),
    BottomNavyBarItem(
      icon: SvgPicture.asset('assets/icons/settings.svg'),
      title: Text('Settings'),
      activeColor: Colors.red,
    ),
  ],
  selectedIndex: 0,
  onItemSelected: (index) {
    setState(() {
      _selectedIndex = index;
    });
  },
);

此代碼建立了一個底部菜單,其中包含三個項目。每個項目都有圖示、標題和啟用顏色。當使用者點選一個項目時,該項目會被啟用並顯示對應的顏色。

步驟 4:加入動畫

現在,可以為底部菜單加入一些動畫效果。使用以下代碼:

AnimatedContainer(
  duration: Duration(milliseconds: 300),
  curve: Curves.easeInOut,
  child: BottomNavyBar(
    items: [
      BottomNavyBarItem(
        icon: SvgPicture.asset('assets/icons/home.svg'),
        title: Text('Home'),
        activeColor: Colors.blue,
      ),
      BottomNavyBarItem(
        icon: SvgPicture.asset('assets/icons/search.svg'),
        title: Text('Search'),
        activeColor: Colors.green,
      ),
      BottomNavyBarItem(
        icon: SvgPicture.asset('assets/icons/settings.svg'),
        title: Text('Settings'),
        activeColor: Colors.red,
      ),
    ],
    selectedIndex: _selectedIndex,
    onItemSelected: (index) {
      setState(() {
        _selectedIndex = index;
      });
    },
  ),
);

此代碼使用 AnimatedContainer 控件來實現動畫。當使用者點選一個項目時,底部菜單會以動畫方式切換到對應的頁面。

步驟 5:測試底部菜單

現在,可以執行 Flutter 專案來測試底部菜單。可以使用以下指令執行專案:

flutter run

執行專案後,你應該會看到一個底部菜單。你可以點選不同的項目來切換到不同的頁面。

結論

本教程一步步教你如何使用 Flutter 製作一個引人注目的底部菜單。透過自訂代碼,你可以突破 Flutter 內建底部菜單的限制,為你的應用程式打造獨特而迷人的使用者體驗。

常見問題

  1. 如何自訂底部菜單的樣式?

    可以使用 BottomNavyBar 控件的屬性來自訂底部菜單的外觀,例如背景顏色、字型和圖示大小。

  2. 如何為底部菜單加入更多項目?

    只需在 items 陣列中加入更多的 BottomNavyBarItem 即可。

  3. 如何處理項目點選事件?

    使用 onItemSelected 回呼函式處理項目點選事件,該函式會傳遞被選取項目的索引。

  4. 如何為底部菜單加入標籤?

    可以使用 BottomNavyBarItem 控件的 title 屬性為每個項目加入標籤。

  5. 如何禁用某些項目?

    可以使用 BottomNavyBarItem 控件的 enabled 屬性來禁用某些項目。