flutter刷新一个状态,来刷新控件的状态

2024-08-31 09:28
文章标签 刷新 状态 控件 flutter

本文主要是介绍flutter刷新一个状态,来刷新控件的状态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,flutter定义一个状态值,应该放在哪里合适?

          1.1, flutter widget的结构

//无状态的,固定widget
class CustomPositionedWidget extends StatelessWidget {const CustomPositionedWidget({super.key,});@overrideWidget build(BuildContext context) {return Container();}
}//有状态的widget
class CustomPositionedWidget extends StatefulWidget {//状态属性写在这里???const CustomPositionedWidget({super.key,});@override_CustomPositionedWidgetState createState() => _CustomPositionedWidgetState();
}class _CustomPositionedWidgetState extends State<CustomPositionedWidget> {//状态属性写在这里???@overridevoid initState() {super.initState();}@overrideWidget build(BuildContext context) {return Container();}
}

状态属性写在哪里合适?

enum AnswerState { unanswered, correct, incorrect }class CustomPositionedWidget extends StatefulWidget {//这里只是传递了初始值final bool initialNeedShowState;final AnswerState initialAnswerState;const CustomPositionedWidget({required this.initialNeedShowState,required this.initialAnswerState,});@override_CustomPositionedWidgetState createState() => _CustomPositionedWidgetState();
}class _CustomPositionedWidgetState extends State<CustomPositionedWidget> {//还是写在这里好,其实在这里也设置了初始值(默认值)bool _needShowState = false;AnswerState _answerState = AnswerState.unanswered;@overridevoid initState() {super.initState();//设置 构造函数传递过来的初始值_needShowState = widget.initialNeedShowState;_answerState = widget.initialAnswerState;}void updateState(bool needShowState, AnswerState answerState) {setState(() {//如果这两个值有改变,会重新绘制widget_needShowState = needShowState;_answerState = answerState;});}String getStr() {if (_answerState == AnswerState.correct) {return 'correct_image';} else if (_answerState == AnswerState.incorrect) {return 'incorrect_image';} else {return 'default_image';}}@overrideWidget build(BuildContext context) {return Positioned(right: 22.w,top: 0,bottom: 0,child: Align(alignment: Alignment.center,child: _needShowState && (_answerState != AnswerState.unanswered)? Image.asset(width: 36.w,height: 36.h,'assets/images/${getStr()}.png',fit: BoxFit.cover,): Container(),),);}
}

这篇关于flutter刷新一个状态,来刷新控件的状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

WinForms中主要控件的详细使用教程

《WinForms中主要控件的详细使用教程》WinForms(WindowsForms)是Microsoft提供的用于构建Windows桌面应用程序的框架,它提供了丰富的控件集合,可以满足各种UI设计... 目录一、基础控件1. Button (按钮)2. Label (标签)3. TextBox (文本框

Flutter实现文字镂空效果的详细步骤

《Flutter实现文字镂空效果的详细步骤》:本文主要介绍如何使用Flutter实现文字镂空效果,包括创建基础应用结构、实现自定义绘制器、构建UI界面以及实现颜色选择按钮等步骤,并详细解析了混合模... 目录引言实现原理开始实现步骤1:创建基础应用结构步骤2:创建主屏幕步骤3:实现自定义绘制器步骤4:构建U

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Flutter打包APK的几种方式小结

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