Flutter创建圆圈图标按钮(1)

ClipOval(

child: Material(

color: Colors.blue, // button color

child: InkWell(

splashColor: Colors.red, // inkwell color

child: 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 {

int _count = 0;

@override

Widget 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 height

decoration: 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),

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值