Flutter---底部导航栏(2) 效果图底部导航栏import package:flutter/material.dart; import package:my_flutter/http/second_page.dart; import first_page.dart; ///底部导航栏 class DemoPage extends StatefulWidget { const DemoPage({super.key}); override StateDemoPage createState() _DemoPageState(); } class _DemoPageState extends StateDemoPage { static const _pageList [FirstPage(),SecondPage()]; var _pageIndex 0; override Widget build(BuildContext context) { return Stack( children: [ _pageList[_pageIndex], //底部导航栏 Positioned( bottom: 40, left: 0, right: 0, child: Center( child: Container( height: 68, width: 221, decoration: BoxDecoration( borderRadius: BorderRadius.circular(45), color: Colors.white, ), child:_pageIndex 0 ? _buildDeviceRow() : _buildMyRow(), ), ) ), ], ); } //设备显示按钮 Widget _buildDeviceRow(){ return Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.min, children: [ Container( height: 60, width: 124, margin: EdgeInsets.only(left: 5), decoration: BoxDecoration( borderRadius: BorderRadius.circular(45), gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Color(0xFFA3BCFF), Color(0xFF58E7FD), ] ), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(Icons.device_hub,color: Colors.white,), SizedBox(width: 5,), Text(设备,style: TextStyle(color: Colors.white,fontSize: 18),) ], ), ), GestureDetector( onTap: (){ setState(() { _pageIndex 1; }); }, child: Container( height: 30, width: 30, margin: EdgeInsets.only(right: 35), child: Icon(Icons.radio,color: Colors.blue,), ) ), ], ); } //我的显示按钮 Widget _buildMyRow(){ return Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.min, children: [ GestureDetector( onTap: (){ setState(() { _pageIndex 0; }); }, child: Container( height: 30, width: 30, margin: EdgeInsets.only(left: 35), child: Icon(Icons.device_hub,color: Colors.blue,), ), ), Container( height: 60, width: 124, margin: EdgeInsets.only(right: 5), decoration: BoxDecoration( borderRadius: BorderRadius.circular(45), gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Color(0xFFA3BCFF), Color(0xFF58E7FD), ] ), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text(我的,style: TextStyle(color: Colors.white,fontSize: 18),), SizedBox(width:5 ,), Icon(Icons.radio,color: Colors.white,), ], ), ), ], ); } }两个子页面import package:flutter/material.dart; class FirstPage extends StatefulWidget { const FirstPage({super.key}); override StateStatefulWidget createState() _FirstPageState(); } class _FirstPageState extends StateFirstPage with SingleTickerProviderStateMixin { override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.pink.withOpacity(0.1), body: Center( child: Text(FirstPage), ) ); } } import package:flutter/material.dart; class SecondPage extends StatefulWidget { const SecondPage({super.key}); override StateStatefulWidget createState() _SecondPageState(); } class _SecondPageState extends StateSecondPage with SingleTickerProviderStateMixin { override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.pink.withOpacity(0.1), body: Center( child: Text(SecondPage), ) ); } }

相关新闻

最新新闻

YOLOv8 vs Faster R-CNN vs FCOS:learnopencv 中 4 套目标检测方案,选型指南一次讲清

YOLOv8 vs Faster R-CNN vs FCOS:learnopencv 中 4 套目标检测方案,选型指南一次讲清

YOLOv8 vs Faster R-CNN vs FCOS:learnopencv 中 4 套目标检测方案,选型指南一次讲清 【免费下载链接】learnopencv Learn OpenCV : C and Python Examples 项目地址: https://gitcode.com/GitHub_Trending/le/learnopencv 做安防计数、工业质检或…

2026/9/6 22:12:20
Puter 入门与部署实践:从源码开发到 Docker 自托管的浏览器“互联网计算机“

Puter 入门与部署实践:从源码开发到 Docker 自托管的浏览器“互联网计算机“

Puter 入门与部署实践:从源码开发到 Docker 自托管的浏览器"互联网计算机" 【免费下载链接】puter 🌐 The Internet Computer! Free, Open-Source, and Self-Hostable. 项目地址: https://gitcode.com/GitHub_Trending/pu/puter 本文基…

2026/9/6 22:12:20
Coqui TTS 模型扩展实战:从文档骨架到 BaseTTS 源码的完整实现流程

Coqui TTS 模型扩展实战:从文档骨架到 BaseTTS 源码的完整实现流程

Coqui TTS 模型扩展实战:从文档骨架到 BaseTTS 源码的完整实现流程 【免费下载链接】TTS 🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production 项目地址: https://gitcode.com/GitHub_Trending/…

2026/9/6 22:12:20
Rails Active Job 实战详解:作业声明、延迟调度、队列适配器与 Continuations 断点续跑

Rails Active Job 实战详解:作业声明、延迟调度、队列适配器与 Continuations 断点续跑

Rails Active Job 实战详解:作业声明、延迟调度、队列适配器与 Continuations 断点续跑 【免费下载链接】rails Ruby on Rails 项目地址: https://gitcode.com/GitHub_Trending/rai/rails Active Job 是 Rails 的异步作业框架,负责把"稍后要…

2026/9/6 22:12:20
STM32+TMC2209步进电机精确定位:S型加减速与失步检测实战

STM32+TMC2209步进电机精确定位:S型加减速与失步检测实战

简介:关于STM32F103与TMC2209步进电机S型加减速精确定位系统的完整技术文档,面向具备嵌入式C语言基础、熟悉STM32开发的工程师、电子爱好者,以及3D打印、数控雕刻机、机器人关节等运动控制领域研发人员,用于解决电机启停失步、振动…

2026/9/6 22:12:20
awesome-copilot 中的 Universal PR Comment Addresser:用 Copilot 自定义 Agent 系统化处理 Pull Request 评审意见

awesome-copilot 中的 Universal PR Comment Addresser:用 Copilot 自定义 Agent 系统化处理 Pull Request 评审意见

awesome-copilot 中的 Universal PR Comment Addresser:用 Copilot 自定义 Agent 系统化处理 Pull Request 评审意见 【免费下载链接】awesome-copilot Community-contributed instructions, agents, skills, and configurations to help you make the most of GitH…

2026/9/6 22:07:20