我找不到任何显示如何创建IconButton类似于的圆的示例FloatingActionButton。任何人都可以建议创建一个自定义按钮的方式/需要什么FloatingActionButton吗?

我认为RawMaterialButton更适合。

RawMaterialButton(onPressed: () {},elevation: 2.0,fillColor: Colors.white,child: Icon(Icons.pause,size: 35.0,),padding: EdgeInsets.all(15.0),shape: CircleBorder(),
)

您可以尝试一下,它是完全可定制的。

ClipOval(child: Material(color: Colors.blue, // button colorchild: InkWell(splashColor: Colors.red, // inkwell colorchild: SizedBox(width: 56, height: 56, child: Icon(Icons.menu)),onTap: () {},),),
)

输出:

您只需要使用形状: CircleBorder()

MaterialButton(onPressed: () {},color: Colors.blue,textColor: Colors.white,child: Icon(Icons.camera_alt,size: 24,),padding: EdgeInsets.all(16),shape: CircleBorder(),
)

您可以使用InkWell来做到这一点:

响应触摸的材料的矩形区域。

下面的示例演示如何使用InkWell。**注意:**您不需StatefulWidget要这样做。我用它来改变计数状态。

例:

import 'package:flutter/material.dart';class SettingPage extends StatefulWidget {@override_SettingPageState createState() => new _SettingPageState();
}class _SettingPageState extends State<SettingPage> {int _count = 0;@overrideWidget build(BuildContext context) {return new Scaffold(body: new Center(child: new InkWell(// this is the one you are looking for..........onTap: () => setState(() => _count++),child: new Container(//width: 50.0,//height: 50.0,padding: const EdgeInsets.all(20.0),//I used some padding without fixed width and heightdecoration: new BoxDecoration(shape: BoxShape.circle,// You can use like this way or like the below line//borderRadius: new BorderRadius.circular(30.0),color: Colors.green,),child: new Text(_count.toString(), style: new TextStyle(color: Colors.white, fontSize: 50.0)),// You can add a Icon instead of text also, like below.//child: new Icon(Icons.arrow_forward, size: 50.0, color: Colors.black38)),),//............),),);}
}

如果要利用splashColor,请使用材料类型为circle的小部件highlightColor包装InkWellMaterial部件。然后decorationContainer小部件中删除。

结果:

RawMaterialButton(onPressed: () {},constraints: BoxConstraints(),elevation: 2.0,fillColor: Colors.white,child: Icon(Icons.pause,size: 35.0,),padding: EdgeInsets.all(15.0),shape: CircleBorder(),
)

记下 constraints: BoxConstraints(),这是为了不允许向左填充。

如果需要背景图像,则可以将CircleAvatar与IconButton一起使用。设置backgroundImage属性。

CircleAvatar(backgroundImage: NetworkImage(userAvatarUrl),
)

按钮示例:

        CircleAvatar(backgroundColor: Colors.blue,radius: 20,child: IconButton(padding: EdgeInsets.zero,icon: Icon(Icons.add),color: Colors.white,onPressed: () {},),),

实际上,有一个示例如何创建类似于FloatingActionButton的圆形IconButton。

Ink(decoration: const ShapeDecoration(color: Colors.lightBlue,shape: CircleBorder(),),child: IconButton(icon: Icon(Icons.home),onPressed: () {},),
)

此代码将帮助您添加按钮而不会出现不必要的填充,

RawMaterialButton(elevation: 0.0,child: Icon(Icons.add),onPressed: (){},constraints: BoxConstraints.tightFor(width: 56.0,height: 56.0,),shape: CircleBorder(),fillColor: Color(0xFF4C4F5E),),

Flutter创建圆圈图标按钮相关推荐

  1. php图标按钮,CSS如何创建图像图标按钮(附代码)

    本篇文章给大家分享如何用CSS创建一个带有图像图标的按钮,内容很详细,有感兴趣的朋友可以看一看. 在按钮表面上显示图像图标时,请写代码以在按钮标签中显示图像,实现此效果要使用显示设置为内联块的span ...

  2. flutter图标按钮_Flutter 中的常见的按钮组件 以及自 定义按钮组件

    import 'package:flutter/material.dart'; class ButtonDemoPage extends StatelessWidget { const ButtonD ...

  3. Flutter组件之图标(Icon)和图标按钮(IconButton)

    图标组件(Icon)为展示图标的组件,该组件不可交互,要实现交互的图标,可以考虑使用IconButton组件.图标组件相关的组件有一下几个: IconButton:可交互的Icon. Icons:框架 ...

  4. Flutter 创建第一个应用程序

    转载https://www.tuicool.com/articles/vYf6raZ 主要介绍下如何用Flutter创建一个应用程序,程序一步步由简单到复杂,操作步骤来自官方,我觉得官方的已经写得挺好 ...

  5. keil5图标变成白色_平面设计:创建万圣节图标

    创建一个新文件 首先创建一个新文档(文件>新建或Control-N),我们将使用以下设置进行调整: 画板数量:1 宽度:800像素 高度:600像素 单位:像素 在"高级"标 ...

  6. java中图标_java中图标按钮

    关于 java中图标按钮的搜索结果 问题 求教如何在按钮中嵌入图标 求高手告诉我,我的问题出在哪里,我想了一上午都没想出来,我想的是设置按钮的图标而不是背景, 未设置按钮图标之前运行的效果 设置按钮图 ...

  7. 添加工具栏的图标按钮

    有三种方法可以添加工具栏的图标按钮: 第一种:创建CImageList对象,然后往里面加图标,调用SetImageList方法添加图标,具体步骤如下: m_ImageList.Create(32,32 ...

  8. 使用 Flutter 创建自适应应用

    Flutter 已被广泛采用,因为它可以灵活地构建应用程序,以使用一个代码库在您的 Android.iOS.macOS 和 Windows 机器上运行. 在大多数情况下,这些设备具有不同的尺寸,尽管 ...

  9. 平面设计:创建家具图标包

    建立新文件 正如我们对每个新项目所做的那样,首先要设置一个新文档(文件>新建或Control-N),我们将使用以下设置进行调整: 画板数量: 1 宽度: 800像素 高度: 600像素 单位: ...

最新文章

  1. canvas-绘制矩形-读书笔记
  2. canvas 闭合_想使用SVG或者canvas 手绘闭合多边形,使用vml效果已经实现了,由于vml只能支持ie所以想转成SVG或canvas...
  3. Android程序员一年工作经验能重复用十年?高效学习很重要!
  4. webpack-dev-server 不是内部或外部命令,也不是可运行的程序 解决方案
  5. 解决TypeError: Tensor is unhashable if Tensor equality is enabled. Instead, use tensor.experimental_re
  6. RIP RETE时间获得PHREAKY
  7. 算法的时间复杂度(python版容易理解)+常用的时间复杂度、python代码--数据结构
  8. 一加7pro保存的录音文件在哪一个文件夹?
  9. [老老实实学WCF] 第一篇 Hello WCF
  10. BloomFilter ——大规模数据处理利器
  11. 【转】char,wchar_t,WCHAR,TCHAR,ACHAR的区别
  12. C# 设置Windows程序窗口为穿透状态
  13. pscad c语言程序,PSCAD入门教程(第8节):调用C语言函数及file reference组件使用...
  14. idea 格式化模板修改
  15. 固态硬盘计算机怎么自定义分区,固态硬盘做系统分区教程-固态硬盘如何分区?...
  16. 一文读懂AB测试原理及样本量计算的Python实现
  17. vscode误更新后,无法连接服务器,报“Acquiring lock on/home/~”和“过程试图写入的管道不存在”错误
  18. segmentation fault(core dump);Run-Time Check Failure #3 -The variable 'p' is being used without bein
  19. 驱动开发之注册表:获取注册表HKEY_CURRENT_USER对应路径(SID)
  20. 中国历史和世界史横向对照表,收藏了长知识。 ​​​​

热门文章

  1. python查看函数定义_从函数内函数定义看python的函数实现
  2. python行业中性_市场风险中性假设的r0只是等效r的其中之一
  3. java 等待几秒_Java并发编程synchronized相关面试题总结
  4. mysql 为游标赋值_mysql 存储过程之游标
  5. gitblit如何迁移入gitlab合并迁移_github仓库迁移到gitlab以及gitlab仓库迁移到另一个gitlab服务器...
  6. 域名注册商标_科技述说:一起了解网络域名的由来
  7. python爬虫多url_Python爬虫实战入门六:提高爬虫效率—并发爬取智联招聘
  8. systemverilog硬件设计及建模_Chisel引领敏捷硬件开发浪潮
  9. mysql matlab for循环嵌套循环语句吗_C++: for_each 和 基于范围的for循环
  10. python获取工程根目录_【Python】获取当前项目根路径/目录