在项目中使用的时候,发现系统按钮并不符合我的需求,所以我把常用的按钮,按照我自己的理解,封装了一个! 供大家参考,如果有建议,可以评论提出! 十分感谢!

只有文字的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 按钮封装 带图片的按钮,带边框的按钮,纯文字的按钮相关推荐

  1. JavaWeb--邮件发送(web注册邮件,纯文本邮件,带图片邮件,带附件邮件)

    邮件服务器与传输协议 发送邮件:SMTP协议 通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器). 接收邮件:POP3协议 通常把处理用户pop3请求(邮件接收请 ...

  2. c语言考试的说说带图片致自己,好听的说说带图片_说说带图片励志致自己

    现在在朋友圈发说说,不配张图都觉得不好看,那么有哪些比较适合配好听一点说说的图片呢?接下来,学习啦小编跟你分享好听的说说带图片,欢迎欣赏致自己的励志说说带图片. 好听的说说带图片 1.愿你如阳光,快乐 ...

  3. android文本框带图片格式,android 带图片的文本框

    基本原理 自定义一个IconTextView类继承自TextView,添加iconsrc属性,表示图片. 重新onDraw方法,将图片绘制到textVIew前面,然后将textView右移. 废话不多 ...

  4. javafx 带图片的按钮菜单_怎么制作ICON图标 图片转ICON图标方法

    怎么制作ICON图标 图片转ICON图标方法?接下来就与大家分享一下,有关利用软件制作ICON图标的方法,同时也介绍利用相关转换工具实现图片转ICON的方法. 方法/步骤 首先,我们需要借助如图所示的 ...

  5. 自定义Android带图片的按钮

    自定义Android带图片的按钮 前言 现在移动设备的按钮设计讲究大图标小文字,希望用户只要一看到图标便能知道这个按钮是干嘛的,但又要有必要的文字提示,最常见的就数搜索按钮了,上面一个大大的放大镜图标 ...

  6. FileUpload控件实现单按钮图片自动上传并带预览显示

    FileUpload控件实现单按钮图片自动上传并带预览显示 1.实现原理: FileUpload控件默认不支持服务端的ONCHANGE事件,此时用一种变通的方法借用客户端的onchange事件,调用_ ...

  7. 用VB实现带图片的XP风格的按钮控件

    虽然在VB里实现XP风格很简单,但是要使用XP风格同时又让按钮显示图片,则实现起来要麻烦一些,为此,我写了一个控件来实现前述功能,同时让读者可以从中了解XP主题界面的绘制过程. 使用办法很简单,在VB ...

  8. Html+css怎样实现纯文字和带图标的按钮

    Html+css怎样实现纯文字和带图标的按钮 Html+css怎样实现纯文字和带图标的按钮,Html+css实现纯文字和带图标的按钮的注意事项有哪些,下面就是实战案例,一起来看一下. 本文总结一下一些 ...

  9. 按钮 toast android,Android Toast使用方法(普通提示和带图片的提示)

    Toast 是一种非常方便的消息提示框,有两个特点: 1.Toast提示信息不会获取焦点. 2.Toast提示信息过一段时会自动消失. 使用方法比较简单,一般通过以下步骤: 1.调用Toast构造器或 ...

最新文章

  1. java 折半插入排序_[Java代码] Java实现直接插入排序和折半插入排序算法示例
  2. java面向对象程序设计第三版耿祥义pdf_java基础知识干货——封装
  3. 【设计模式】—— 职责链模式ChainOfResponsibility
  4. 中国移动2016年NAT独立设备集采:迪普科技连续三年入围
  5. 别急,MIUI 11还有惊喜!下一代MIUI项目已开拔
  6. 【es】es 的 Setting和Environment
  7. Java–cvc-complex-type.4:Attribut ‘version’ must appear on element ‘web-app’
  8. python缩放图片,复制即用
  9. 算术逻辑单元 —— 串行加法器和并行加法器
  10. [安全攻防进阶篇] 三.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏
  11. 计算机新建里没有word,电脑鼠标右键没有新建Word选项怎么办?
  12. Google Analytics中的基本度量四 “页面停留时间和网站停留时间
  13. 蓝牙与计算机无法建立连接,电脑蓝牙无法建立连接是为什么呀?
  14. mysql distribute by_Mysql与分布式Gaussdb 100语法差异及常见问题汇总
  15. 19南大软院上岸学姐考研经验分享
  16. 银河移民PHP面试,移民香港,我真的“后悔死了”
  17. MacBook不接电源实现外接显示器功能
  18. 最大化 Google Chrome 浏览器
  19. 1.25 Cubemx_STM32H743II—QSPI
  20. Python 抓取知识星球内容生成词云并生成 PDF

热门文章

  1. 第一章 Python初探
  2. java以某个字符串断句_结合 ictclass4j 和 KTDictSeg 写自己的分词器----断句(1)
  3. 递归查询数据库中树状数据
  4. Face detection in color images, 彩色图像中的人脸检测
  5. LeetCode 1665. 完成所有任务的最少初始能量
  6. VS2019及其他多个老版本的VS下载说明
  7. 干翻华为才有年终奖,“性感”小米发布MIX3,滑盖全面屏只要3299元
  8. Chrome游览器改变SameSite设置
  9. 安卓手机上最好的3个epub阅读器
  10. 【jquery】Chosen.jquery.js 插件动态加载数据问题