flutter 局部刷新

article/2025/10/18 9:51:36

在这里插入图片描述
在这里插入图片描述

目的:局部刷新

效果:点击右下角刷新按钮后,对九宫格中的图片刷新状态

思路:两个方法
一、整个页面都刷新,局部组件有变化,用UniqueKey()
二、只针对局部组件刷新,用GlobalKey()

具体操作:

一、使用UniqueKey() ————————————

UniqueKey()方法提供的key每次绘制时都是唯一的,所以整个页面重新绘制时,系统检测到只有这个节点的实体与原来不同,所以重新生成该节点新实体。
实验发现其子节点的所有实体也被更新了,相当于该点的树杈一整个都被换了

① 给局部组件加上UniqueKey()

SizedBox(height: 290,width: 330,child: Padding(padding: const EdgeInsets.symmetric(vertical:0,horizontal: 20),child: GridView9(confirmflag:confirmflag,key: UniqueKey(),//直接添加在要更新的这个组件上),),),

② 直接刷新setState(() {})

child:OutlinedButton(onPressed: (){setState(() {});},//刷新整个页面child: const Icon(Icons.refresh,size: 25,),
)

二、使用GlobalKey()————————————

简而言之,GlobalKey()就是给组件取个公开的名字,大家都能找到并调用他的方法。

① 定义变量

注意泛型<GridView9State> 是要被刷新的组件 的State类型

class _JumpDialogState extends State<JumpDialog> {GlobalKey<GridView9State> gbKey = GlobalKey();//定义变量bool confirmflag = true; Widget build(BuildContext context) {return Center(

②把变量赋给组件Key

child: GridView9(confirmflag:confirmflag,key: gbKey,//给组件的Key赋值
),

③按钮就可以调用组件的方法了

child:OutlinedButton(onPressed: (){gbKey.currentState!.setState(() {});},....)

④需要注意

被刷新的组件中State去除了前方的下划线,让State暴露出去可以被其他组件访问

class GridView9 extends StatefulWidget {final bool confirmflag;const GridView9({super.key,required this.confirmflag});State<GridView9> createState() => GridView9State();//原来是_GridView9State()
}//原来是 _GridView9State
class GridView9State extends State<GridView9> {

http://chatgpt.dhexx.cn/article/L2pRUQPq.shtml

相关文章

什么是局部刷新

局部刷新 浏览器在展示数据时&#xff0c;此时在窗口既可以看到本次的响应数据&#xff0c;同时又可以看到浏览器内存原有数据。 局部刷新原理&#xff1a; 不由浏览器发送请求给服务端 浏览器委托浏览器内存中一个脚本对象代替浏览器发送请求 这个行为导致服务端直接将…

【PSFTP】Windows从Linux获取文件或目录

1、安装Putty Win10先安装Putty 官方下载地址&#xff1a;http://www.putty.be/latest.html 安装后&#xff0c;Win10运行PSFTP 2、登录Linux 提示使用open host.name连接服务器 psftp: no hostname specified; use "open host.name" to connect psftp>参考…

putty、pscp、psftp 使用教程

如何从安装了Windows的工作电脑连远程接到Linux服务器?其实有很多软件,比如 PuTTY、XShell、CRT、MobaXterm等等。不过还是 PuTTY最简单易用、无需安装、并且开源免费。PuTTY其实是一个软件套装,里边除了最常用的putty之外,还包含了像 pscp、psftp等可以用于文件传输的工具…

putty和psftp命令行参数

putty和psftp命令行参数 https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip https://the.earth.li/~sgtatham/putty/latest/puttydoc.zip https://the.earth.li/~sgtatham/putty/latest/putty-0.72.tar.g…

psftp

2019独角兽企业重金招聘Python工程师标准>>> 当连接到远程计算机以后&#xff0c;使用以下命令&#xff1a; bye 结束 psftp 。 cd 改变远程服务器的目录。 chmod 改变远程服务器的文件或文件夹的权限及属性。 del 删除远程服务器上的文件。 dir …

linux psftp,使用PSFTP实现Windows、Linux之间的文件传输

安装PuTTY时自动安装了PSFTP 使用PSFTP可以实现Winodws、Linux之间的文件传输。 打开PSFTP&#xff0c;输入Linux的ip地址&#xff0c;输入要登录的用户名、密码 Windows向Linux传文件&#xff1a; put D:\jdk-8u241-linux-x64.rpm /root/jdk-8u241-linux-x64.rpm put 本地文件…

putty以及psftp的基本操作,使用方法等

1、putty登陆远程服务器 open之后进入登陆界面&#xff0c;输入用户名之后点击Enter&#xff0c;之后输入登陆密码&#xff08;界面不显示&#xff0c;输入正确后直接Enter就可以&#xff09; 进入之后的界面 之后就可以输入命令进行操作了 2、文件传输psftp&#xff1a; 运行…

PSFTP工具的使用教程

PSFTP&#xff1a;是Putty的SFTP客户端&#xff0c;可以通过SFTP协议在两台电脑之间的传输文件。它和 PSCP相比的优点在于可以与服务器进行交互&#xff0c;遍历服务器上的文件系统&#xff0c;在一个会话中上传或下载多个文件。而 PSCP 只能一次传输一个文件&#xff0c;传输完…

Vector3.Lerp

Unity3D中的线性插值Lerp()函数解析 在unity3D中经常用线性插值函数Lerp()来在两者之间插值&#xff0c;两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间&#xff0c;其函数原型如下&#xff1a; Material.Lerp 插值 function Lerp(start : Materi…

Unity 的Vector3.Project 和 Vector3.ProjectOnPlane

目录 1.public static Vector3 Project(Vector3 vector, Vector3 onNormal); 描述 &#xff1a; 代码&#xff1a; 效果&#xff1a; 结论&#xff1a; 2.public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal);返回向量在平面上的位置。 描述 …

Vector3——简单的3D向量类

参考资料&#xff1a;1、 [美] 邓恩&#xff08;Dunn F.&#xff09;著. 3D数学基础——图形设计与开发. 史银雪&#xff0c;陈洪&#xff0c;王荣静 译 清华大学出版社 p57-65 2、http://www.2cto.com/kf/201311/260139.html 编程环境 QT4.8.4 VS2010 本文用 C实现一个简单…

Unity Vector3.Dot(VectorA, VectorB)

Unity Vector3.Dot(VectorA, VectorB) Vector3.Dot(VectorA, VectorB) 等于 VectorA * VectorB。 而对于两个向量的乘积计算&#xff1a; VectorA * VectorB Ax * Bx Ay * By Az * Bz 例如&#xff1a; VectorA(1,2,3) * VectorB(4,5,6) 1*42*53*632 一般应用于判断飞行…

Unity - 优化 Vector3.ProjectOnPlane

文章目录 起因好奇绘制 Vector3.ProjectOnPlane 的参数&#xff0c;与返回结果绘制结果定位作用、优化完整脚本ProjectReferences 起因 之前偶然项目中看到过 API Vector3.ProjectOnPlane API 的使用 然在这篇文章也看到&#xff1a;Unity3d那些你不常用但确有其用的方法—Ve…

Unity —— Vector3

Vector3向量&#xff0c;在三维坐标系中带有方向和大小的数据 Vector3中一些常量&#xff1a; 1、Vector3.back&#xff08;0,0,-1&#xff09; 2、Vector3.forward&#xff08;0,0,1&#xff09; 3、Vector3.left&#xff08;-1,0,0&#xff09; 4、Vector3.right&#xff0…

Unity3D_向量(Vector3)数学基础

向量&#xff08;Vector3&#xff09; 在虚拟的游戏世界中&#xff0c;3D数学决定了游戏&#xff0c;如何计算和模拟出开发者以及玩家看到的每一帧画面。学习基础的3D数学知识可以帮主用户对游戏引擎产生更深刻的了解。 向量定义&#xff1a;既有大小又有方向的量叫做向量。在…

Vector3类详解

|| 欢迎讨论技术的可以相互加微信&#xff1a;windgs (请备注csdnxx职业) || --------------------- 作者&#xff1a;隨意的風 来源&#xff1a;CSDN 原文&#xff1a;https://blog.csdn.net/Windgs_YF/article/details/86550843 版权声明&#xff1a;本文为博主原创文章…

面试真的被问麻了......

前几天组了一个软件测试面试的群&#xff0c;没想到效果直接拉满&#xff0c;看来大家对面试这块的需求还是挺迫切的。昨天我就看到群友们发的一些面经&#xff0c;感觉非常有参考价值&#xff0c;于是我就问他还有没有。 结果他给我整理了一份非常硬核的面筋&#xff0c;打开…