Flutter页面状态保留策略

news2024/10/6 8:35:59

目的: 防止每次点击底部按钮都进行一次页面渲染和网络请求

1. 使用IndexedStack

简单,只需要把被渲染的组件外部套一层IndexedStack即可
缺点: 在应用启动的时候,所有需要保存状态的页面都会直接被渲染,保存起来. 对性能有影响

2. 使用PageController

实现较为复杂,但是不用应用启动就全部加载

PageController实现页面状态保留步骤:

  1. 将要进行状态保留的页面使用PageView包裹,其中需要最少两个参数:controller和children. children就是要渲染的页面. controller需要自定义
    在这里插入图片描述
  2. 自定义controller
    在这里插入图片描述
  3. 在被渲染的页面中with AutomaticKeepAliveClientMixin 类, 重写 get方法进行配置,build方法中调用super.builder(context)

    在这里插入图片描述
    ps: 前两步骤是在外层组件中设置的,如:foot组件Tabs, 在Tabs中渲染页面,如Home. 第三步则是在Home中完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1866571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员必备的ChatGPT技巧:从代码调试到项目管理

近年来,随着人工智能技术的迅猛发展,ChatGPT作为一种强大的对话式AI工具,已经广泛应用于各个领域。而对于程序员来说,ChatGPT不仅可以帮助他们解决编程中的各种问题,还能在项目管理中发挥重要作用。本篇博客将详细介绍…

电脑高手推荐:三款超实用软件,让你的电脑如虎添翼!

7Zip 7-Zip是一款免费且开源的文件压缩工具,支持多种文件格式,包括其自带的7z格式、ZIP、GZIP、BZIP2和TAR等。该软件由Igor Pavlov于1999年开发,具有高压缩比的特点。7-Zip不仅可以在Windows操作系统上使用,还可以在Unix-like的操…

【嵌入式 RT-Thread】一种优雅的使用 [互斥锁] 和 [信号量] 解决数据多路并发思路

rt-thread 中的信号量和互斥锁在工业开发项目中的应用,本博文主要介绍了一种优雅的使用 [互斥锁] 和 [信号量] 解决数据多路并发思路 2024-06 by 积跬步、至千里 目录 0. 个人简介 && 授权须知1. 工业场景描述1.1 工业数据采集需求1.2 总线协议与数据采集 2…

第 12 课:基于隐语的VisionTransformer框架

基于之前MPC的基础知识,本讲主要内容是MPCViT基于SecretFlow的VisionTransformer框架,主要从神经网络架构,隐私推理框架和实验结果三方面介绍。 一、MPCViT:安全且高效的MPC友好型 Vision Transformer架构 MPCViT隐私推理总体框架…

【LeetCode 274】H指数

1. 题目 2. 分析 这题没啥难度,需要熟练运用Python API。 sort(reverseTrue)可以用于排序List,并且倒序排序。 3. 代码 class Solution:def hIndex(self, citations: List[int]) -> int:citations.sort(reverseTrue)res 0for idx,cite in enume…

vue3-登录小案例(借助ElementPlus+axios)

1.创建一个vue3的项目。 npm create vuelatest 2.引入Elementplus组件库 链接:安装 | Element Plus npm install element-plus --save 在main.js中引入 import ElementPlus from "element-plus";import "element-plus/dist/index.css";ap…

【osgEarth】Ubuntu 22.04 源码编译osgEarth 3.5

下载源代码 git clone --depth1 https://dgithub.xyz/gwaldron/osgearth -b osgearth-3.5 下载子模块 git submodule update --init 如果下载不过来,就手动修改下.git/config文件,将子模块的地址替换成加速地址 (base) yeqiangyeqiang-Default-string…

Puppeteer实战指南:自动化抓取网页中的图片资源

1. Puppeteer 简介 Puppeteer是Google Chrome团队开发的一个Node库,它提供了一个高级API来控制Chrome或Chromium浏览器。Puppeteer可以进行网页自动化操作,包括导航、屏幕截图、生成PDF、捕获网络活动等。 2. 环境搭建 在开始之前,确保你的…

Java中Stream的特性

Stream新特性 被称之为Stream流,用于操作集合或者数组中的数据 优势:Stream流大量的结合了Lambda的语法风格,代码更简洁,可读性更好 使用步骤 先获取数据源,获取Stream流 Collect…

Java常用API基础语法(附带思维导图)

常见的API基本语法 String常用的操作方法 toCharArray equals() equalsIgonreCase substring(0,5) 从0-5的下标开始截取 substring(5) 从下标为5开始往后截取 replace …

来自工业界的知识库 RAG 服务(五),模块化知识库 GoMate 实现方案详解

背景介绍 很早以前就看过一篇介绍 RAG 的综述性文章 Retrieval-Augmented Generation for Large Language Models: A Survey, 其中介绍了 RAG 的模块化架构: 但是一直没有看到对应的实现方案,以前也没有理解此框架的优势之处。随着在相关领域的持续实…

网约车停运损失费:2、协商过程

目录 🍅点击这里查看所有博文 随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记…

如何提升投资伦敦金的分析能力:回测

对伦敦金行情的分析能力,在我们做伦敦金交易的整个体系中是有很重要的作用的。但要提升对伦敦金行情的分析和把握是不太容易的,那有没有方法可以提升?那答案是有的,下面我们就来讨论一下,这个方法就是回测。 回测就是把…

深度学习方法在谣言检测中的研究现状

摘要 管理社交媒体上的谣言,减少谣言对社会的危害。许多研究使用深度学习方法来检测开放网络中的谣言。为了从多个角度全面梳理谣言检测的研究现状,本文从特征选择、模型结构和研究方法三个角度分析了这一高度集中的工作。从特征选择的角度,将…

4.整合第三方技术【整合JUnit】

目录 1.创建项目: 2.导入测试对应的starter 3.添加测试对象 3.1 添加Prodcut接口文件 3.2 添加ProdcutImpl文件 3.3 测试类添加测试文件,并开始测试 4.测试类文件解析 4.1.测试类使用SpringBootTest修饰 4.2使用自动装配的形式添加要测试的对象 1.…

Linux开发讲课16--- 【内存管理】页表映射基础知识2

ARM32页表和Linux页表那些奇葩的地方 ARM32硬件页表中PGD页目录项PGD是从20位开始的,但是为何头文件定义是从21位开始? 历史原因:Linux最初是基于x86的体系结构设计的,因此Linux内核很多的头文件的定义都是基于x86的&#xff0c…

go中的方法 func-----数据类型

本文是java学习者学go种产生的容易记混点的笔记,所以有其他编译语言的基础更好 go的方法有点像js 基础 func main() {fmt.Println("Starting")var p *string new(string)*p "hello world"demo : "demo"fmt.Println(*&demo) //这样既然也…

服务器部署与DDOS攻防

知识点:DHPC与Web服务部署,DHCPig攻防,SYN Flooding测试 DHCP: 能够自动为客户机获取IP等参数 DHCP是动态主机配置协议(Dynamic Host Configuration Protocol)的缩写,它是一种网络管理协议&am…

华三交换机的软件版本升级操作

升级操作很常见,掌握方法是关键 实验环境:1台华三S6520-EI交换机,版本从2432P03升级成2432P05。 整体思路: 1.先查验软件版本 2.官网下载对于设备型号的软件版本 3.配置交换机地址使得与电脑进行通信,使用TFTP/FTP工…

UFS协议—新手快速入门(五)【11-13】

目录 十一、逻辑单元(Logical Unit, LU) 1、概念 2、UFS逻辑单元的独立特性 3、Well known LU (1)Boot Logical Units(BOOT LUs) (2)RPMB(Replay Protected Memory…