Flutter定義tabbar底部導航路由跳轉的方法
本文實例為大家分享了Flutter定義tabbar底部導航路由跳轉的具體代碼,供大家參考,具體內容如下
效果展示
整體實現的目錄結構
第一步 把三個頁面放到tabs里 Category.dart || Home.dart || Setting.dart
在這里我只展示 Home.dart 另外兩個頁面相同
import 'package:flutter/material.dart'; class HomePage extends StatefulWidget { ? HomePage({Key key}) : super(key: key); ? @override ? _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { ? @override ? Widget build(BuildContext context) { ? ? return Text("我是首頁組件"); ? } }
在 Tabs.dart 里import 引入三個頁面
import 'package:flutter/material.dart'; import 'tabs/Home.dart'; import 'tabs/Category.dart'; import 'tabs/Setting.dart'; class Tabs extends StatefulWidget { ? Tabs({Key key}) : super(key: key); ? @override ? _TabsState createState() => _TabsState(); } class _TabsState extends State<Tabs> { ? int _currentIndex = 0; ? // 把頁面存放到數組里 ? List _pageList = [ ? ? HomePage(), ? ? CategoryPage(), ? ? SettingPage(), ? ]; ? @override ? Widget build(BuildContext context) { ? ? return Scaffold( ? ? ? appBar: AppBar( ? ? ? ? title: Text('首頁'), ? ? ? ), ? ? ? body: this._pageList[this._currentIndex], ? ? ? bottomNavigationBar: BottomNavigationBar( ? ? ? ? // 默認選中第幾項 ? ? ? ? currentIndex: this._currentIndex, ? ? ? ? // 導航欄點擊獲取索引值 ? ? ? ? onTap: (int index) { ? ? ? ? ? setState(() { ? ? ? ? ? ? this._currentIndex = index; ? ? ? ? ? }); ? ? ? ? }, ? ? ? ? iconSize: 30.0, //icon的大小 ? ? ? ? fixedColor: Colors.red, //選中的顏色 ? ? ? ? type: BottomNavigationBarType.fixed, //配置底部tabs可以有多個按鈕 ? ? ? ? //定義導航欄的圖片+名稱 ? ? ? ? items: [ ? ? ? ? ? BottomNavigationBarItem(icon: Icon(Icons.home), title: Text("首頁")), ? ? ? ? ? BottomNavigationBarItem( ? ? ? ? ? ? ? icon: Icon(Icons.category), title: Text("分類")), ? ? ? ? ? BottomNavigationBarItem( ? ? ? ? ? ? ? icon: Icon(Icons.settings), title: Text("設置")), ? ? ? ? ], ? ? ? ), ? ? ); ? } }
main.dart
import 'package:flutter/material.dart'; //快捷方式:fim import 'pages/Tabs.dart'; void main() { ? runApp(MyApp()); } //自定義組件 class MyApp extends StatelessWidget { ? @override ? Widget build(BuildContext context) { ? ? // TODO: implement build ? ? return MaterialApp( ? ? ? home: Tabs(), ? ? ? theme: ThemeData(primarySwatch: Colors.deepOrange), ? ? ? debugShowCheckedModeBanner: false, ? ? ); ? } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android 破解視頻App去除廣告功能詳解及解決辦法總結
這篇文章主要介紹了Android 破解視頻App去除廣告功能詳解及解決辦法總結的相關資料,這里對視頻播放原理及破解去除廣告幾種方法進行了總結,需要的朋友可以參考下2016-12-12Android簡單創(chuàng)建一個Activity的方法
這篇文章主要介紹了Android簡單創(chuàng)建一個Activity的方法,結合圖文形式分析了Android創(chuàng)建Activity的具體步驟與實現技巧,需要的朋友可以參考下2016-04-04解決android studio 打包發(fā)現generate signed apk 消失不見問題
這篇文章主要介紹了解決android studio 打包發(fā)現generate signed apk 消失不見問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Android開發(fā)之TimePicker控件用法實例詳解
這篇文章主要介紹了Android開發(fā)之TimePicker控件用法,結合實例形式詳細分析了Android項目的建立及TimePicker控件的具體使用技巧,需要的朋友可以參考下2016-02-02Android開發(fā)中l(wèi)ibs和jinLibs文件夾的作用詳解
這篇文章主要給大家介紹了關于Android開發(fā)中l(wèi)ibs和jinLibs文件夾的作用的相關資料,文中通過圖文及示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-09-09android仿Adapter實現自定義PagerAdapter方法示例
這篇文章主要給大家介紹了關于android仿Adapter實現自定義PagerAdapter的相關資料,文中詳細介紹了關于PagerAdapter的用法,對大家的理解和學習具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11