当前位置: 首页 > news >正文

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 State<DemoPage> createState() => _DemoPageState(); } class _DemoPageState extends State<DemoPage> { 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 State<StatefulWidget> createState() => _FirstPageState(); } class _FirstPageState extends State<FirstPage> 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 State<StatefulWidget> createState() => _SecondPageState(); } class _SecondPageState extends State<SecondPage> with SingleTickerProviderStateMixin { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.pink.withOpacity(0.1), body: Center( child: Text("SecondPage"), ) ); } }
http://www.jsqmd.com/news/1150947/

相关文章:

  • STM32与CMT-8540S音频模块开发实战
  • IntelliJ IDEA Markdown插件深度解析:专业文档编写解决方案
  • 华为MetaERP 年结后发现差异,不要一上来就反结账重跑——先花 10 分钟把“差异长什么样“锁住,再对着根因表对号入座,80% 的场景能直接定位。下面按“现象 → 根因 → 对症动作“给路径,SA
  • VisualCppRedist AIO:告别DLL错误,Windows软件运行的终极救星![特殊字符]
  • STM32F303RC与ADS1262高精度信号采集方案
  • Krita Vision Tools:3个AI智能工具让图像编辑效率提升300%的终极指南
  • 告别手动下载烦恼:tchMaterial-parser智能解析器让电子课本获取轻松10倍
  • STM32与TC78H651AFNG直流电机驱动方案详解
  • 如何高效使用pyodbc:企业级数据库连接终极指南
  • L9958与PIC32MX460F512L电机控制方案详解
  • 如何用3个实战步骤掌握暗黑2存档编辑器的终极修改技巧
  • 英雄联盟Akari助手终极指南:3分钟快速提升游戏效率的免费开源工具
  • Figma中文汉化终极指南:3分钟让英文设计工具变中文界面
  • Oracle CASE WHEN 表达式 7 种实战用法:从 SELECT 到 ORDER BY 与 GROUP BY
  • 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内
  • 推理服务的 GPU 资源池化管理:基于 CUDA MPS 的多模型混部与隔离策略
  • MAX77654与PIC18F87K22构建低功耗电源管理系统
  • 如何在SketchUp中轻松实现3D打印:STL导入导出完全指南
  • 3种边缘检测算子对比:Sobel vs Canny vs Laplacian 在工业缺陷检测中的性能实测
  • Scikit-learn SVM 4种核函数对比:Digits数据集上C参数调优,准确率最高99.17%
  • ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍
  • 3个步骤让Audacity拥有AI音频处理能力:OpenVINO插件安装与使用指南
  • OpenAI API 与国内代理服务对比:3种接入方案的成本、合规与稳定性实测
  • Multi-Agent协作开发:中大型项目工程化落地实战
  • YOLOv8变电站液体泄露红外识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置+目标检测)
  • AcFunDown:打破A站视频离线观看壁垒的终极解决方案
  • Claude Code自动提交Git全链路解析,从代码生成到PR自动创建的一站式解决方案
  • 抖音批量下载终极教程:5分钟搞定海量内容保存
  • 5步完成Honey Select 2游戏增强补丁的终极配置指南
  • LinkSwift:2025年最值得尝试的9大网盘直链下载解决方案