flutter 底部滑动导航,页面滑动同时让底部导航跟着变动,除了点击还可以滑动哦~~

2024-03-13 14:18

本文主要是介绍flutter 底部滑动导航,页面滑动同时让底部导航跟着变动,除了点击还可以滑动哦~~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现点击以及滑动都可以切换导航的效果

核心代码


完整代码

// 输入 imrm 快速生成下面
import 'package:flutter/material.dart';
import 'Home.dart';
import 'HomeNew.dart';
import 'Category.dart';
import 'User.dart';
import 'Cart.dart';class Tabs extends StatefulWidget {const Tabs({Key? key, arguments}) : super(key: key);@override_TabsState createState() => _TabsState();
}class _TabsState extends State<Tabs> {int _currentIndex = 0;late PageController _pageController; // 缓存页面重要代码@overridevoid initState() {super.initState();this._pageController =new PageController(initialPage: this._currentIndex); // 缓存页面重要代码}Widget _initPng() {return Image.asset('assets/images/tdd2.png',height: 25.0,);}static const Color myPink = Color(0xFFdf769e);var _title;List<Widget> _pageList = [HomeNewPage(),HomePage(),CategoryPage(),CartPage(),UserPage()];void _pageChange(int index) {setState(() {_currentIndex = index;});}@overrideWidget build(BuildContext context) {// _title = _initPng();return Scaffold(//这里设置总体背景色backgroundColor: Colors.white,appBar: AppBar(elevation: 0, //隐藏底部阴影分割线centerTitle: true, //标题是否居中 安卓上有效ios默认居中backgroundColor: Colors.white, //设置导航背景颜色title: _title,),// title: Text('我是title')),// body: Text('页码下标' + this._currentIndex.toString()),// body: this._pageList[this._currentIndex],body: PageView(onPageChanged: _pageChange,controller: this._pageController, // 缓存页面重要代码children: this._pageList,),bottomNavigationBar: BottomNavigationBar(items: [BottomNavigationBarItem(icon: Icon(Icons.home), label: '首页'),BottomNavigationBarItem(icon: Icon(Icons.home), label: '测试'),BottomNavigationBarItem(icon: Icon(Icons.category), label: '分类'),BottomNavigationBarItem(icon: Icon(Icons.shopping_cart), label: '购物车'),BottomNavigationBarItem(icon: Icon(Icons.people), label: '个人中心'),],currentIndex: _currentIndex,onTap: (index) {setState(() {this._currentIndex = index;this._pageController.jumpToPage(index); // 缓存页面重要代码switch (index) {case 0:{print('case01');_title = Image.asset('assets/images/tdd2.png',height: 25.0,);}break;case 1:{_title = Text("测试页面",style: TextStyle(color: myPink,fontSize: 17,letterSpacing: 1,wordSpacing: 2,height: 1.2,fontWeight: FontWeight.w600),);}break;case 2:{_title = Text("分类",style: TextStyle(color: myPink,fontSize: 17,letterSpacing: 1,wordSpacing: 2,height: 1.2,fontWeight: FontWeight.w600),);}break;case 3:{_title = Text("购物车",style: TextStyle(color: myPink,fontSize: 17,letterSpacing: 1,wordSpacing: 2,height: 1.2,fontWeight: FontWeight.w600),);}break;case 4:{_title = Text("个人中心",style: TextStyle(color: myPink,fontSize: 17,letterSpacing: 1,wordSpacing: 2,height: 1.2,fontWeight: FontWeight.w600),);}break;}});},type: BottomNavigationBarType.fixed,fixedColor: myPink,),);}
}

在这里插入图片描述

这篇关于flutter 底部滑动导航,页面滑动同时让底部导航跟着变动,除了点击还可以滑动哦~~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/805148

相关文章

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

基于Redis有序集合实现滑动窗口限流的步骤

《基于Redis有序集合实现滑动窗口限流的步骤》滑动窗口算法是一种基于时间窗口的限流算法,通过动态地滑动窗口,可以动态调整限流的速率,Redis有序集合可以用来实现滑动窗口限流,本文介绍基于Redis... 滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE