Flutter - PageView(1) 基本用法

2024-01-08 00:50
文章标签 用法 基本 flutter pageview

本文主要是介绍Flutter - PageView(1) 基本用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果要实现页面切换和 Tab 布局,我们可以使用 PageView 组件。需要注意,PageView 是一个非常重要的组件,因为在移动端开发中很常用,比如大多数 App 都包含 Tab 换页效果、图片轮动以及抖音上下滑页切换视频功能等等,这些都可以通过 PageView 轻松实现。
在这里插入图片描述
1 PageView 简单使用

PageView(scrollDirection:Axis.horizontal,allowImplicitScrolling: true,children: <Widget>[MyItemContainerState(colors: Colors.yellow,pageName: "yellow",),MyItemContainerState(colors: Colors.red,pageName: "red",),MyItemContainerState(colors: Colors.green,pageName: "green",),MyItemContainerState(colors: Colors.blue,pageName: "blue",),MyItemContainerState(colors: Colors.deepPurple,pageName: "deepPurple",)],)
class MyItemContainerState extends StatefulWidget {const MyItemContainerState({Key? key,required this.colors,required this.pageName}) : super(key: key);final MaterialColor colors ;final String pageName ;State<MyItemContainerState> createState() {// TODO: implement createStatereturn ItemContainerState(colors,pageName);}
}

class MyItemContainerState extends StatefulWidget {const MyItemContainerState({Key? key,required this.colors,required this.pageName}) : super(key: key);final MaterialColor colors ;final String pageName ;State<MyItemContainerState> createState() {// TODO: implement createStatereturn ItemContainerState(colors,pageName);}
}

class ItemContainerState extends State<MyItemContainerState> with AutomaticKeepAliveClientMixin{MaterialColor colors ;String pageName ;ItemContainerState(this.colors,this.pageName);// TODO: implement wantKeepAlivebool get wantKeepAlive => true;Widget build(BuildContext context) {super.build(context);print("创建$pageName");// TODO: implement buildreturn  Container(width: double.infinity,height: double.infinity,color: colors,alignment: Alignment.center,child: Text(pageName,style: TextStyle(fontSize: 50,color: Colors.white),),);}void dispose() {// TODO: implement disposeprint("销毁$pageName");super.dispose();}}

注1 scrollDirection:Axis.horizontal, 控制PageView的滑动方向
Axis.horizontal 是横着滑
Axis.vertical 竖着滑
在这里插入图片描述
注 2 allowImplicitScrolling: true,
为true 时 ,缓存当前页的前一页和后一页
为false 时 ,不缓存,滑出当前页及时销毁当前页

1 下面日志打印的是 allowImplicitScrolling = false 的情况
在这里插入图片描述
2 下面是 allowImplicitScrolling = true 的情况
2.1第一次运行程序,创建了 yellow 和 red 两个界面
在这里插入图片描述
2.2 滑动到第二个界面是 创建了 green 界面 ,并且没有销毁 yellow 界面
在这里插入图片描述
2.3 滑动到第三个green界面时 创建了 blue 界面 且销毁了yellow 界面
在这里插入图片描述

这篇关于Flutter - PageView(1) 基本用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

bytes.split的用法和注意事项

当然,我很乐意详细介绍 bytes.Split 的用法和注意事项。这个函数是 Go 标准库中 bytes 包的一个重要组成部分,用于分割字节切片。 基本用法 bytes.Split 的函数签名如下: func Split(s, sep []byte) [][]byte s 是要分割的字节切片sep 是用作分隔符的字节切片返回值是一个二维字节切片,包含分割后的结果 基本使用示例: pa

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

UVM:callback机制的意义和用法

1. 作用         Callback机制在UVM验证平台,最大用处就是为了提高验证平台的可重用性。在不创建复杂的OOP层次结构前提下,针对组件中的某些行为,在其之前后之后,内置一些函数,增加或者修改UVM组件的操作,增加新的功能,从而实现一个环境多个用例。此外还可以通过Callback机制构建异常的测试用例。 2. 使用步骤         (1)在UVM组件中内嵌callback函

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe