flutter 按钮单选封装
数字是自己先写死的
List list =[
{
"title": "影视特效",
"type":,
},
{
"title": "室内设计",
"type":
},
{
"title": "游戏原画",
"type":
},
{
"title": "次时代",
"type":
},
{
"title": "UI设计",
"type":
},
{
"title": "后期合成",
"type":
},
];
使用了GridView
用来控制一行显示几列
@override
Widget build(BuildContext context) {
int groupValue=1;
return GridView.count(
padding: EdgeInsets.all(5.0),
//一行多少个
crossAxisCount: 3,
//滚动方向
scrollDirection: Axis.vertical,
// 左右间隔
crossAxisSpacing: 10.0,
// 上下间隔
mainAxisSpacing: 15.0,
//宽高比
childAspectRatio: 1 / 0.4,
shrinkWrap: true,
children: widget.formList.map((value) {
return listitem(context,value);
}).toList(),
);
}
widget.formList 是从调用页面传过来的
Widget listitem(context,value) {
var deviceSize = MediaQuery.of(context).size;
print(value['type']);
return groupValue==value['type'] ? RaisedButton(
color: Colors.black,
onPressed: (){
print('切换${value}');
updateGroupValue(value['type']);
},
child: Text(value['title'],style: TextStyle(color: Colors.white),),
):OutlineButton(
onPressed: (){
print('切换${value}');
updateGroupValue(value['type']);
},
child: Text(value['title']),
);
}
这里是代码的关键比较 当value和groupValue一致的时候则选中 设置选中样式和没选中样式
当点击某一个按钮的时候进行修改 groupValue 的值 默认groupValue值为0
int groupValue=0;
void updateGroupValue(int v){
setState(() {
groupValue=v;
});
}
最终效果如下:
flutter 按钮单选封装的更多相关文章
- iOS开发——项目实战OC篇&类QQ黏性按钮(封装)
类QQ粘性按钮(封装) 那个,先来说说原理吧: 这里原理就是,在界面设置两个控件一个按钮在上面,一个View在下面(同样大小),当我们拖动按钮的时候显示下面的View,view不移动,但是会根据按钮中 ...
- WPF控件库:文字按钮的封装
需求:封装按钮,按钮上面只显示文字.在鼠标移上去.鼠标点击按钮.以及将按钮设为不可用时按钮的背景色和前景色需要发生变化 实现:继承Button类,封装如下6个属性: #region 依赖属性 /// ...
- ios开发之--多个按钮单选效果
开发项目时,有很多场景需要用到按钮单选效果,例如充值页面,选择标签页面等,具体实现代码如下: 1,创建 -(UIView *)headerView { CGFloat width = (Kscreen ...
- iOS不得姐项目--appearance的妙用,再一次设置导航栏返回按钮,导航栏左右按钮的封装(巧用分类)
一.UI_APPEARANCE_SELECTOR 彩票项目中appearance的用法一直没有搞明白,这次通过第二个项目中老师的讲解,更深一层次的了解到了很多关于appearance的作用以及使用方法 ...
- WPF控件库:图片按钮的封装
需求:很多时候界面上的按钮都需要被贴上图片,一般来说: 1.按钮处于正常状态,按钮具有背景图A 2.鼠标移至按钮上方状态,按钮具有背景图B 3.鼠标点击按钮状态,按钮具有背景图C 4.按钮处于不可用状 ...
- swift项目第六天:中间发布按钮的封装以及监听点击事件
import UIKit /* 总结:1:给UIButton写分类,新建文件swiftFile,一般为了区分起名字都是名字-Extension,要想调用UI控件需要导入 import UIKit框架, ...
- flutter Radio单选框
单选框,允许用户从一组中选择一个选项. import 'package:flutter/material.dart'; class RadioDemo extends StatefulWidget { ...
- Flutter用dio封装http网络请求,设置统一的请求地址、headers及处理返回内容
封装http请求是项目中经常需要做的,常用于设置通用请求地址.请求headers以及处理返回结果,例如在项目中开发地址.测试地址.上线地址是不一样的,当在封装的请求设置好默认地址之后只需要改一个地址而 ...
- Flutter 打印日志封装及创建Live Templates快捷打印日志
只需要输入logi 就可出现以下代码 /// tag(类名.函数名)LogUtil.i(index, tag: '_MyHomePageState.onItemClick:');打印日志效果如下: 实 ...
随机推荐
- 使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,
一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不 ...
- Java——异常的基本概念
1.异常的基本概念 1.1什么是异常 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格 ...
- PHP ftp_cdup() 函数
定义和用法 ftp_cdup() 函数把当前目录改变为 FTP 服务器上的父目录. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 ftp_cdup(ftp_connection ...
- java——IO(普通文件,二进制文件,压缩文件 )
二进制文件 压缩包
- 剑指offer——丑数(c++)
题目描述只包含质因子2.3和5的数称作丑数(UglyNumber).例如6.8都是丑数,但14不是,因为它包含质因子7,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路:1.逐个 ...
- 搜索引擎优化 TF_IDF之Java实现
实现之前,我们要事先说明一些问题: 我们用Redis对数据进行持久化,存两种形式的MAP: key值为term,value值为含有该term的urlkey值为url,value值为map,记录term ...
- 听说这个FFT跑得巨jb快
#pragma GCC target ("avx2") #include <immintrin.h> #include<bits/stdc++.h> usi ...
- 如何加大jvm的内存和tomcat的内存
如何扩大jvm的内存和tomcat的内存,如何让项目没有用的值得到及时的回收和清理,java项目 最佳答案 修改 tomcat 的内存方式:修改 catalina.bat在set JAVA_OPT ...
- I/O复用select 使用简介
一:五种I/O模型区分: 1.阻塞I/O模型 最流行的I/O模型是阻塞I/O模型,缺省情形下,所有套接口都是阻塞的.我们以数据报套接口为例来讲解此模型(我们使用UDP而不是TCP作为例子的原 ...
- HDU 6695 Welcome Party (贪心)
2019 杭电多校 10 1005 题目链接:HDU 6695 比赛链接:2019 Multi-University Training Contest 10 Problem Description T ...