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

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

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

相关文章

linux下toe网卡驱动,toe命令是干什么的,有没有大神解答一下

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼[lHP14 ~]$ toe -as--> /etc/terminfo----> /usr/share/terminfo--*-: Eterm Eterm with xterm-style color support (X Window System)--*-: Eterm-256color Eterm with xterm 256-colors--*-: Eterm-88color Eterm with 88…

ALSA声卡笔记2---ASoC驱动框架

1、简单了解一下ASOC 在嵌入式系统里面的声卡驱动为ASOC(ALSA System on Chip) ,它是在ALSA 驱动程序上封装的一层 分为3大部分,Machine,Platform和Codec ,三部分的关系如下图所示:其中Machine是指我们的…

举例说明语言接触会造成哪些结果_语言学概论全真模拟演练(二)

第一部分选择题(30分)一、单项选择题(本大题共20小题,每小题1分,共20分。在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内,错选、多选或来选均无分。)1.语言符号可变性的根本原因在于语言符号的…

linux下ceontab不起作用,linux下crontab 不能执行的原因

1.相关sh文件没有x权限2.相关sh文件中,不包含如下的信息:[oracleleiredhat u01]$ cat job.shexport ORACLE_BASE/u01/app/oracleexport ORACLE_HOME/u01/app/oracle/oracle/product/10.2.0/db_1PATH/u01/app/oracle/oracle/product/10.2.0/db_1/bin:$PAT…

drive下载 synology_群晖 Synology Drive 的安装与使用

首先进入“套件中心”,然后在搜索框中输入“drive”,出现的结果中能看到需要安装的套件了,点击“立即安装”即可,剩下就是确认和下一步,如图:当然我们也要安装安装完后该套件会四个选项:立即打开…

dev_open linux,linux 伪终端设备 /dev/ptmx

伪终端(pseudoterminal): ptmx, pts (伪终端master和伪终端slave)./dev/ptmx用于创建伪终端主从设备对.当我们用open打开/dev/ptmx设备后, 返回主设备的文件描述符,并且在/dev/pts/目录下创建一个伪终端从设备.在成功打开/dev/ptmx后, 可以通过函数ptsname()来获取从设备的path…

fetch git pull 切换_git fetch git pull

解析.git文件夹进入正题之前,我们先来看看.git文件夹1.config配置文件[core]repositoryformatversion 0filemode truebare falselogallrefupdates truesharedRepository group[remote "origin"]url https://xxx/xxx/xxx.gitfetch refs/heads/*:ref…

C语言对stm32f103程序,STM32F103WIFI程序C语言

《STM32F103WIFI程序C语言》由会员分享,可在线阅读,更多相关《STM32F103WIFI程序C语言(33页珍藏版)》请在人人文库网上搜索。1、实用标准文案 AP模式 AP的SSID : ATWAP11BG,LAUVAN(SSID),CHI AP的KEY: : ATWAKEYWPA2PSK,AES,22222222 AP模式&…

python之路_自定义属性、json及其他js补充

一、自定义属性 我们知道,在前端页面渲染的过程中,我们可能会需要用到一些后端传来的参数,这种参数的获取我们一般是通过模板语言渲染得到。但是当这些参数是在js文件中被用到(js代码若是单独以文件形式被引用,模板语言…

python中类型错误、计数不采用关键字的错误怎么改_Python设计错误

你要求链接或其他来源,但实际上没有。这些信息散布在许多不同的地方。什么才是真正构成设计错误的因素?您是只考虑语言定义中的语法和语义问题,还是包括诸如平台和标准库问题以及特定实现问题等实用问题?您可以说,从性…

C语言打印日历总结报告,C语言打印日历

应同学的要求,写了个日历,输入年份,输出12个月份的日历表,代码如下 :#includebool isLeap(int year){if((year%40 && year%100!0) || (year%4000))return 1;elsereturn 0;}void printCalendar(int year){int d…

电文的编码和译码c语言实现,电文的编码及译码.doc

数据结构课程设计题目:电文的编码与译码院系:班级:学号:姓名:2014-2015年度 第1学期目录一.题目:电文的编码与译码3二.设计目标3三.问题描述3四.需求分析3五&…

java中二进制怎么说_面试常用:说清楚Java中synchronized和volatile的区别

回顾一下两个关键字:synchronized和volatile1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。2、synchronized通过加锁的方式&#…

python 日记 day4。

1.为何数据要分类 数据是用来表示状态的,不同的状态应该用不同类型的数据来表示。 2.数据类型 数字 字符串 列表 元组 字典 集合 列表:列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的…

c语言复合语句开始标记字符,国家开放大学C语言程序设计A第一次形考任务及答案(2020年整理)(7页)-原创力文档...

;学 海 无 涯 ;;学 海 无 涯 ;学 海 无 涯 ;学 海 无 涯二、判断题(共 60 分,每小题 2 分。叙述正确则回答“是”,否则回答“否”)题目 21C 语言中的每条简单语句以分号作为结束符。对 题目 22C 语言中的每条复合语句以花括号作为结束符。错 题目 23在 C…

搜索不到投屏设备怎么办_电视投屏搜索不到设备解决方案

手机投屏电视想必许多人都用过,但是仍然有些人不会投屏,或者说投屏不成功。今天小编就给大家讲解,手机投屏电视,搜索不到设备怎么解决呢?在解决这个问题之前,我们先了解一下,手机投屏电视需要哪…

准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。 下面在介绍时使用一下例子: 一个班级有20个女生,80个男生。现在一个分类器需要…

js与c语言互相调用,Objc与JS间相互调用

过去3、4年都在进行跨平台的混合应用开发,但一直没有系统梳理跨平台技术的底层原理,趁新工作未正式入职,这里整理一下。跨平台的一种实现是基于webview。所谓webview,实质是在原生app中打开一个内嵌浏览器,具体到iOS平…

swift 拖动按钮_Swift - 单元格滑动按钮库SwipeCellKit使用详解1(基本用法)

在之前的两篇文章中我分别介绍了如何使用 iOS8和 iOS11提供的相关代理方法,来实现 tableView单元格滑动事件按钮:但它们局限性还是比较大的,前者只能实现尾部按钮,且按钮只能使用文字无法使用图片。而后者对系统版本又要求比较高。…

MySQL数据库优化(五)

MySQL配置优化 通过配置my.cnf使数据库达到优化的目的。 1、innodb的缓冲池配置 innodb_buffer_pool_size  通常配置服务器内存的60%~70% 2、innodb log缓存配置 innodb_log_buffer_size  这个不宜配置太大,因为日志缓存每秒刷新一次 3、配置缓冲池个数 innodb_…