Flutter底部不規(guī)則導(dǎo)航的實(shí)現(xiàn)過程
前言
本文主要介紹的是關(guān)于Flutter實(shí)現(xiàn)底部不規(guī)則導(dǎo)航的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧
實(shí)現(xiàn)方法:
1、main.dart文件
import 'package:flutter/material.dart'; import 'bootom_appBar.dart'; void main () =>runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title:'不規(guī)則底部導(dǎo)航', //自定義主題樣本 theme:ThemeData( primarySwatch:Colors.lightBlue ), home:BottomAppBarDemo(), ); } }
2、bootom_appBar.dart
import 'package:flutter/material.dart'; import 'each_view.dart'; class BottomAppBarDemo extends StatefulWidget { @override _BottomAppBarDemoState createState() => _BottomAppBarDemoState(); } class _BottomAppBarDemoState extends State<BottomAppBarDemo> { List<Widget> _eachView; int _index = 0; @override void initState() { _eachView = List(); _eachView ..add(EachView('主頁的頁面')); _eachView ..add(EachView('副頁的頁面')); // TODO: implement initState super.initState(); } @override Widget build(BuildContext context) { return Scaffold( //變換頁面 body: _eachView[_index], floatingActionButton: FloatingActionButton( onPressed: (){ Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context){ return EachView('新添加的頁面'); })); }, tooltip: '添加', child: Icon( Icons.add, color: Colors.white, ), ), floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, bottomNavigationBar: BottomAppBar( //工具欄比NavigationBar靈活 color: Colors.lightBlue, //與fab融合 //圓形缺口 shape: CircularNotchedRectangle(), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ IconButton( icon: Icon(Icons.home), color: Colors.white, onPressed: (){ setState(() { _index = 0; }); }, ), IconButton( icon: Icon(Icons.airport_shuttle), color: Colors.white, onPressed: (){ setState(() { _index = 1; }); }, ) ], ), ), ); } }
3、each_view.dart
import 'package:flutter/material.dart'; class EachView extends StatefulWidget { String _title; EachView(this._title); @override _EachViewState createState() => _EachViewState(); } class _EachViewState extends State<EachView> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text(widget._title),), body: Center(child: Text(widget._title),), ); } }
4、效果展示
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
android: targetSdkVersion升級(jí)中Only fullscreen activities can r
這篇文章主要給大家介紹了關(guān)于Android target SDK和build tool版本升級(jí)中遇到Only fullscreen activities can request orientation問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09Android開發(fā)筆記之:如何安全中止一個(gè)自定義線程Thread的方法
本篇文章是對(duì)Android中如何安全中止一個(gè)自定義線程Thread的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android編程獲取并設(shè)置Activity亮度的方法
這篇文章主要介紹了Android編程獲取并設(shè)置Activity亮度的方法,涉及Android針對(duì)屏幕亮度的相關(guān)操作技巧,需要的朋友可以參考下2015-12-12Android入門之onTouchEvent觸碰事件的示例詳解
今天給大家?guī)淼氖荰ouchListener與OnTouchEvent的比較,以及多點(diǎn)觸碰的知識(shí)點(diǎn)!?文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-12-12關(guān)于Android?Webview?設(shè)置Cookie問題詳解
大家好,本篇文章是關(guān)于Android?Webview?設(shè)置Cookie問題詳解,感興趣的同學(xué)可以看看,希望對(duì)你起到幫助,有用的話記得收藏,方便下次瀏覽2021-11-11