Flutter中底部導(dǎo)航欄具體實現(xiàn)方式

## 老規(guī)矩,先看圖

```

是是是

```

![]

![]https://img-blog.csdnimg.cn/20190121114138526.png?x-oss-process=image/watermark)

## 項目結(jié)構(gòu)如下:

![在這里插入圖片描述](https://img-blog.csdnimg.cn/20190121114138526.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NvZGVreHg=,size_16,color_FFFFFF,t_70)

**1.main.dart**

```java

import 'package:flutter/material.dart';

import 'tab_page.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

? @override

? Widget build(BuildContext context) {

? ? return MaterialApp(

? ? ? title: 'tab_demo',

? ? ? theme: ThemeData.light(),

? ? ? home: TabDemo(),

? ? );

? }

}

class TabDemo extends StatefulWidget {

? _TabDemoState createState() => _TabDemoState();

}

class _TabDemoState extends State<TabDemo> with SingleTickerProviderStateMixin{

? TabController _tabController;

? @override

? void initState() {

? ? super.initState();

? ? _tabController = TabController(length: 3,vsync: this);

? }

? @override

? void dispose() {

? ? _tabController.dispose();

? ? super.dispose();

? }

? @override

? Widget build(BuildContext context) {

? ? return Scaffold(

? ? ? appBar: AppBar(

? ? ? ? title: Text('TabDemo'),

? ? ? ? bottom: TabBar(

? ? ? ? ? controller: _tabController,

? ? ? ? ? tabs: <Widget>[

? ? ? ? ? ? Tab(icon: Icon(Icons.assignment_ind),),

? ? ? ? ? ? Tab(icon: Icon(Icons.assignment_late),),

? ? ? ? ? ? Tab(icon: Icon(Icons.assignment_return),),

? ? ? ? ? ],? ? ? ? ),

? ? ? ),

? ? ? body: TabBarView(

? ? ? ? controller: _tabController,

? ? ? ? children: <Widget>[

? ? ? ? ? TabPage(),

? ? ? ? ? TabPage(),

? ? ? ? ? TabPage()

? ? ? ? ],

? ? ? ),

? ? );

? }

}

```

**2.tab_page.dart**

```java

import 'package:flutter/material.dart';

class TabPage extends StatefulWidget {

? @override

? _TabPageState createState() => new _TabPageState();

}

class _TabPageState extends State<TabPage> with AutomaticKeepAliveClientMixin{

? @override

? bool get wantKeepAlive => true;//是否保存狀態(tài)

? int _indexCount = 0;

? void _addCount(){

? ? setState(() {

? ? ? _indexCount ++;

? ? });

? }

? @override

? Widget build(BuildContext context) {

? ? return Scaffold(

? ? ? floatingActionButton: FloatingActionButton(

? ? ? onPressed: _addCount,tooltip: '點擊相加',

? ? ? child: Icon(Icons.add,color: Colors.white,),

? ? ? ),

? ? ? ? body: Center(

? ? ? ? child: Column(

? ? ? ? ? mainAxisAlignment: MainAxisAlignment.center,

? ? ? ? ? children: <Widget>[

? ? ? ? ? ? Text("這是界面"),

? ? ? ? ? ? Text('$_indexCount',style: Theme.of(context).textTheme.display2,)

? ? ? ? ? ],

? ? ? ? ),

? ? ? ),

? ? );

? }

}

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文地址 Flutter是谷歌推出的一款全新的移動app SDK。它旨在幫助開發(fā)人員和設(shè)計師為Android和IO...
    Sper_CL閱讀 802評論 0 1
  • 第1步:創(chuàng)建初始Flutter應(yīng)用 創(chuàng)建一個簡單的 Flutter 應(yīng)用。主要編輯 Dart 代碼所在的 lib ...
    小白_Sing閱讀 1,081評論 0 0
  • 猶記得我還是個無知的少年 匆忙地學著成長 回頭才發(fā)現(xiàn) 一路磕磕絆絆 雖已成年 卻依舊無知 只是懂得了裝飾 懂得了隱...
    千何閱讀 220評論 0 1
  • 《敏捷文化》這本書已經(jīng)買了一兩個月了吧,今天終于看完,相對別人一周看一本書的速度,真心自慚形穢,不過看完了總是一件...
    吳穎華閱讀 1,139評論 0 0
  • 前幾天看了幾部好看的電影,它們都賺足了我的眼淚,所以也忍不住推薦給大家。上圖是電影《小花的味增湯》中的片段,說的是...
    星禾燦爛閱讀 341評論 0 0

友情鏈接更多精彩內(nèi)容