flutter图标按钮_flutter 按钮封装 带图片的按钮,带边框的按钮,纯文字的按钮
在项目中使用的时候,发现系统按钮并不符合我的需求,所以我把常用的按钮,按照我自己的理解,封装了一个! 供大家参考,如果有建议,可以评论提出! 十分感谢!
只有文字的button
/*
*只有文字的button
*/
class XXTextButton extends StatelessWidget {
const XXTextButton({
Key key,
this.onTap,
this.textColor,
this.title,
this.width,
this.height,
this.backColor = Colors.transparent,
this.fontsize = 15.0,
this.borderColor = Colors.transparent,
this.circular = 0.0,
this.padding,
this.borderWidth,
}) : super(key: key);
final onTap;
final width; //整体宽
final height; //整体高
final backColor; //背景颜色
final circular; //弧度
final double borderWidth;
final Color borderColor;
final Color textColor;
final String title;
final double fontsize;
final EdgeInsetsGeometry padding;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
padding: padding,
decoration: BoxDecoration(
color: backColor,
border: Border.all(width: 1, color: borderColor),
borderRadius: BorderRadius.circular(circular),
),
child: Text(
title,
style: TextStyle(
fontSize: ScreenAdapt.sizeX2(fontsize),
color: textColor,
fontWeight: FontWeight.normal,
),
),
),
);
}
}
点击带边框按钮
/*
*点击带边框按钮
*/
class XXClickLineBtn extends StatelessWidget {
const XXClickLineBtn(
{Key key,
this.color,
this.title,
this.onTap,
this.circular,
this.width,
this.backColor,
this.height})
: super(key: key);
final Color color; //颜色
final String title; //文字
final onTap; //点击方法
final circular; //弧度
final width; //整体宽
final backColor; //背景颜色
final height; //整体高
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
alignment: Alignment.center,
width: width,
height: height,
child: Text(
title,
style: TextStyle(
fontSize: ScreenAdapt.size(24),
color: color,
),
),
decoration: BoxDecoration(
color: backColor,
border: Border.all(width: 1, color: color),
borderRadius: BorderRadius.circular(circular),
),
),
);
}
}
图片的点击按钮 iconBtn
/*
*图片的点击按钮 iconBtn
*/
class XXMyIconBtn extends StatelessWidget {
const XXMyIconBtn({
Key key,
this.iconSting,
this.onPressed,
this.width,
this.height,
}) : super(key: key);
final iconSting; //图片的地址
final onPressed; //执行的方法
final width; //宽
final height; //高
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onPressed,
child: Container(
width: width,
height: height,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(iconSting),
fit: BoxFit.fill,
),
),
),
);
}
}
图片 + 文字按钮 icon在左 tiitle在右
/*
*图片 + 文字按钮 icon在左 tiitle在右
*/
class XXClickImageAndTitleBtn extends StatelessWidget {
const XXClickImageAndTitleBtn(
{Key key,
this.image,
this.imageSize,
this.title,
this.padding,
this.fontSize,
this.textColor,
this.onTap})
: super(key: key);
final Widget image; //image
final Size imageSize; //image的宽高
final String title; //文字
final double padding; //图片和文字之间的间距
final double fontSize; //文字的大小
final Color textColor; //文字的颜色
final onTap; //执行的方法
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
// width: ScreenAdapt.widthX2(widget.width),
// height: ScreenAdapt.widthX2(widget.height),
alignment: Alignment.center,
child: Row(
children: [
Container(
width: ScreenAdapt.widthX2(imageSize.width),
height: ScreenAdapt.heightX2(imageSize.height),
child: image,
),
SizedBox(
width: ScreenAdapt.heightX2(padding),
),
Container(
child: Text(
title,
style: TextStyle(
fontSize: ScreenAdapt.sizeX2(fontSize),
color: textColor,
),
),
),
],
),
),
);
}
}
图片 + 文字按钮 icon在上 文字在下
/*
* iconbutton icon在上 文字在下
*/
class ExamIndexIconButton extends StatelessWidget {
const ExamIndexIconButton({Key key, this.action, this.icon, this.title})
: super(key: key);
final action;
final String icon;
final String title;
@override
Widget build(BuildContext context) {
return GestureDetector(
child: Container(
color: Colors.white.withAlpha(0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
width: ScreenAdapt.widthX2(30),
height: ScreenAdapt.widthX2(30),
// color: Colors.green,
child: Image.asset(
icon,
fit: BoxFit.fill,
),
),
Container(
padding: EdgeInsets.only(top: 12, bottom: 12),
child: Text(
title,
style: TextStyle(
fontSize: ScreenAdapt.size(28),
color: Color(0xFF3B3B3B),
),
),
),
],
),
),
onTap: action,
);
}
}
图片 + 文字按钮 tiitle在左 icon在右
/*
*图片 + 文字按钮 tiitle在左 icon在右
*/
class XXClickTitleAndImageBtn extends StatelessWidget {
const XXClickTitleAndImageBtn(
{Key key,
this.image,
this.imageSize,
this.title,
this.padding = 0,
this.fontSize,
this.textColor,
this.onTap})
: super(key: key);
final Widget image; //image
final Size imageSize; //image的宽高
final String title; //文字
final double padding; //图片和文字之间的间距
final double fontSize; //文字的大小
final Color textColor; //文字的颜色
final onTap; //执行的方法
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
// width: ScreenAdapt.widthX2(widget.width),
// height: ScreenAdapt.widthX2(widget.height),
alignment: Alignment.center,
child: Row(
children: [
Container(
child: Text(
title,
style: TextStyle(
fontSize: ScreenAdapt.sizeX2(fontSize),
color: textColor,
),
),
),
SizedBox(
width: ScreenAdapt.heightX2(padding),
),
Container(
width: ScreenAdapt.widthX2(imageSize.width),
height: ScreenAdapt.heightX2(imageSize.height),
child: image,
),
],
),
),
);
}
}
flutter图标按钮_flutter 按钮封装 带图片的按钮,带边框的按钮,纯文字的按钮相关推荐
- JavaWeb--邮件发送(web注册邮件,纯文本邮件,带图片邮件,带附件邮件)
邮件服务器与传输协议 发送邮件:SMTP协议 通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器). 接收邮件:POP3协议 通常把处理用户pop3请求(邮件接收请 ...
- c语言考试的说说带图片致自己,好听的说说带图片_说说带图片励志致自己
现在在朋友圈发说说,不配张图都觉得不好看,那么有哪些比较适合配好听一点说说的图片呢?接下来,学习啦小编跟你分享好听的说说带图片,欢迎欣赏致自己的励志说说带图片. 好听的说说带图片 1.愿你如阳光,快乐 ...
- android文本框带图片格式,android 带图片的文本框
基本原理 自定义一个IconTextView类继承自TextView,添加iconsrc属性,表示图片. 重新onDraw方法,将图片绘制到textVIew前面,然后将textView右移. 废话不多 ...
- javafx 带图片的按钮菜单_怎么制作ICON图标 图片转ICON图标方法
怎么制作ICON图标 图片转ICON图标方法?接下来就与大家分享一下,有关利用软件制作ICON图标的方法,同时也介绍利用相关转换工具实现图片转ICON的方法. 方法/步骤 首先,我们需要借助如图所示的 ...
- 自定义Android带图片的按钮
自定义Android带图片的按钮 前言 现在移动设备的按钮设计讲究大图标小文字,希望用户只要一看到图标便能知道这个按钮是干嘛的,但又要有必要的文字提示,最常见的就数搜索按钮了,上面一个大大的放大镜图标 ...
- FileUpload控件实现单按钮图片自动上传并带预览显示
FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理: FileUpload控件默认不支持服务端的ONCHANGE事件,此时用一种变通的方法借用客户端的onchange事件,调用_ ...
- 用VB实现带图片的XP风格的按钮控件
虽然在VB里实现XP风格很简单,但是要使用XP风格同时又让按钮显示图片,则实现起来要麻烦一些,为此,我写了一个控件来实现前述功能,同时让读者可以从中了解XP主题界面的绘制过程. 使用办法很简单,在VB ...
- Html+css怎样实现纯文字和带图标的按钮
Html+css怎样实现纯文字和带图标的按钮 Html+css怎样实现纯文字和带图标的按钮,Html+css实现纯文字和带图标的按钮的注意事项有哪些,下面就是实战案例,一起来看一下. 本文总结一下一些 ...
- 按钮 toast android,Android Toast使用方法(普通提示和带图片的提示)
Toast 是一种非常方便的消息提示框,有两个特点: 1.Toast提示信息不会获取焦点. 2.Toast提示信息过一段时会自动消失. 使用方法比较简单,一般通过以下步骤: 1.调用Toast构造器或 ...
最新文章
- java 折半插入排序_[Java代码] Java实现直接插入排序和折半插入排序算法示例
- java面向对象程序设计第三版耿祥义pdf_java基础知识干货——封装
- 【设计模式】—— 职责链模式ChainOfResponsibility
- 中国移动2016年NAT独立设备集采:迪普科技连续三年入围
- 别急,MIUI 11还有惊喜!下一代MIUI项目已开拔
- 【es】es 的 Setting和Environment
- Java–cvc-complex-type.4:Attribut ‘version’ must appear on element ‘web-app’
- python缩放图片,复制即用
- 算术逻辑单元 —— 串行加法器和并行加法器
- [安全攻防进阶篇] 三.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏
- 计算机新建里没有word,电脑鼠标右键没有新建Word选项怎么办?
- Google Analytics中的基本度量四 “页面停留时间和网站停留时间
- 蓝牙与计算机无法建立连接,电脑蓝牙无法建立连接是为什么呀?
- mysql distribute by_Mysql与分布式Gaussdb 100语法差异及常见问题汇总
- 19南大软院上岸学姐考研经验分享
- 银河移民PHP面试,移民香港,我真的“后悔死了”
- MacBook不接电源实现外接显示器功能
- 最大化 Google Chrome 浏览器
- 1.25 Cubemx_STM32H743II—QSPI
- Python 抓取知识星球内容生成词云并生成 PDF
热门文章
- 第一章 Python初探
- java以某个字符串断句_结合 ictclass4j 和 KTDictSeg 写自己的分词器----断句(1)
- 递归查询数据库中树状数据
- Face detection in color images, 彩色图像中的人脸检测
- LeetCode 1665. 完成所有任务的最少初始能量
- VS2019及其他多个老版本的VS下载说明
- 干翻华为才有年终奖,“性感”小米发布MIX3,滑盖全面屏只要3299元
- Chrome游览器改变SameSite设置
- 安卓手机上最好的3个epub阅读器
- 【jquery】Chosen.jquery.js 插件动态加载数据问题