flutter的按钮如何变为不可选中_如何在Flutter中禁用按钮?
小编典典
我想你可能要出台一些辅助功能,以build您的按钮
,以及与一些属性键关机的沿有状态的部件。
使用StatefulWidget / State并创建一个变量来保存您的条件(例如isButtonDisabled)
最初将其设置为true(如果您要这样做)
呈现按钮时,请勿将onPressed值直接设置为null某个或某些函数onPressed: () {}而是使用三元或辅助函数有条件地设置它(以下示例)
isButtonDisabled作为此条件的一部分进行检查,并返回一个null或某些函数。当按下按钮时(或每当您要禁用按钮时),使用setState(() => isButtonDisabled = true)来翻转条件变量。
Flutter将build()使用新状态再次调用该方法,并且按钮将由null按下处理程序呈现并被禁用。
这是使用Flutter计数器项目的更多背景信息。
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State {
int _counter = 0;
bool _isButtonDisabled;
@override
void initState() {
_isButtonDisabled = false;
}
void _incrementCounter() {
setState(() {
_isButtonDisabled = true;
_counter++;
});
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("The App"),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
new Text(
'You have pushed the button this many times:',
),
new Text(
'$_counter',
style: Theme.of(context).textTheme.display1,
),
_buildCounterButton(),
],
),
),
);
}
Widget _buildCounterButton() {
return new RaisedButton(
child: new Text(
_isButtonDisabled ? "Hold on..." : "Increment"
),
onPressed: _isButtonDisabled ? null : _incrementCounter,
);
}
}
在此示例中,我使用内联三元有条件地设置Text and onPressed,但是将其提取到
函数中可能更合适(您也可以使用相同的方法来更改按钮的文本):
Widget _buildCounterButton() {
return new RaisedButton(
child: new Text(
_isButtonDisabled ? "Hold on..." : "Increment"
),
onPressed: _counterButtonPress(),
);
}
Function _counterButtonPress() {
if (_isButtonDisabled) {
return null;
} else {
return () {
// do anything else you may want to here
_incrementCounter();
};
}
}
2020-08-13
flutter的按钮如何变为不可选中_如何在Flutter中禁用按钮?相关推荐
- html按钮怎么修改大小设置吗,如何在HTML中编辑按钮大小?
如何在HTML中编辑按钮大小?使用HTML设计按钮之类的东西不是首选的方式.(1999年我开始建网站的时候,我们就是这么做的,但是现在有更好的方法了.) 我假定您不熟悉CSS以及如何将CSS文件导入到 ...
- txt文本变为粗体_如何在PHP中使文本变为粗体?
txt文本变为粗体 Sometimes we might want to display text with style. That it's font, color, make it bold, i ...
- android 控件发光_如何在android中的按钮周围制作动画/常量发光效果?
的按钮有一个背景绘制的图像,我只是想拥有它周围的发光效果,使它有点与音乐播放 我已经搜查各地的多个线程共鸣,他们要么只是一个ImageView的,或在压制,或位图,所以不一定是我寻求 这里是我的按钮X ...
- python 获取文本框内容_如何在python中单击按钮时获取文本框中的文本?
我可以让您的代码在单击按钮时显示文本框中的文本: 这就是你要达到的目的吗?您没有提到是否出现错误,但我确实发现您的代码存在两个问题:Button.py脚本中似乎存在一些缩进问题.在 对于changeT ...
- 笔记本禁用键盘命令符_如何在Windows中禁用命令提示符和“运行”程序
笔记本禁用键盘命令符 The Command Prompt and the Run program are pretty powerful tools in the Windows world. If ...
- ubuntu 麦克风录音_如何在Ubuntu中禁用麦克风和网络摄像机 | MOS86
这几天每个人都有一台笔记本电脑.这意味着每个人都有一个内置麦克风的网络摄像头.在很大程度上,这是一件伟大的事情,因为这意味着越来越多的人现在可以在线参与视频或音频聊天. 这样一来,这个技术变得越来越好 ...
- qbuttongroup如何都不选中_将单选按钮和多选按钮分组的类QButtonGroup
QButtonGroup 的继承图: QButtonGroup 的描述: 它是个抽象的按钮容器,可以将多个按钮划分为一组 之所以抽象是指它不具备可视化的效果(因为它继承自QObject ,一般继承自Q ...
- figma设计_如何在Figma中构建设计入门套件(第1部分)
figma设计 Figma教程 (Figma Tutorial) Do you like staring at a blank canvas every time you start a new pr ...
- 在excel日期比对大小_如何在Excel中防止分组日期
在excel日期比对大小 As a teenager, group dates can be fun. If you have strict parents, that might be the on ...
最新文章
- 动态更新 AGS Cache
- 再也不买仙剑正版盘了
- java 怎么打印变量
- 初试poi HssfWorkBook导出excel
- 【转】Oracle Outline使用方法及注意事项
- rdp协议打开 windows_ubuntu客户端使用RDP协议连接windows服务器
- Android Studio Process 'command ...\aapt.exe'' finished with non-zero exit value 1
- 方舟服务器维护驯龙,方舟生存进化新手图文攻略 最详细的驯龙教程方法
- 项目疑难杂症记录(三):EditText获取不到焦点了?
- 曾遭周鸿祎全网封杀的 360 猛将 :草根打工到 36 岁身家上亿的逆袭!
- Echarts数据可视化全解
- 洛谷 P1640 [SCOI2010]连续攻击游戏(二分图匹配)
- 【红黑树】都这样讲了,不会还有人不会红黑树吧
- 多重积分MULTIPLE INTEGRALS
- 如何快速一次性卸载所有python包(第三方库)呢?
- Mavenir被以色列Partner选为下一代网络
- Excel格式刷使用
- 服务器配置记录(五)GNS3虚拟机SSH配置
- Mac 系统下Python多版本管理
- 灵飞经4 西城八部 第十八章 暗通款曲(三)
热门文章
- HTML+CSS+JS实现 ❤️酷炫3D瀑布流动画特效❤️
- c语言文件读写_学生信息管理系统(C语言\单向链表\文件读写)
- java 多线程同步_详解Java多线程编程中的线程同步方法
- 连接linux桌面命令,连接Linux远程桌面的四个方法
- mysql取消主键_mysql如何删除主键?
- Java连接数据库所遇到的坑,连接数据库,遇到一个很奇怪的问题……
- 【OpenCV 例程200篇】25. 图像的平移
- uwsgi怎么通过浏览器访问某个脚本_4个Shell小技巧帮你提高机器学习效率:写好脚本,事半功倍...
- java 搜索引擎 关键词高亮_和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮(示例代码)...
- mysql初始化脚本建表_mysql新建表修改表sql脚本