Flutter 里有很多的按钮组件很多,常见的按钮组件有:RaisedButton
(按钮)、MaterialButton
(按钮)、DropDownButton
(按钮)、FlatButton
(扁平按钮)、IconButton
(图标按钮)、弹出菜单按钮
(弹出菜单按钮)、OutlineButton
(轮廓按钮)、ButtonBar
(轮廓按钮)、FloatingActionButton
(浮动按钮)、Inkwell
(墨水按钮)等,实际项目开发中可以按自己的需要或者习惯选择喜欢的控件。
自己最常用的就是Inkwell
和MaterialButton
,感觉Inkwell
可以实现所有的布局,基本上都在使用Inkwell
。下面记录一下遇到的问题:
1、Inkwell取消水波纹
Inkwell
点击的时候会有水波纹一样的动画效果,但是有些时候,显得比较突兀,需要取消这个效果,加入下面两个属性即可。
highlightColor: Colors.transparent,
radius: 0.0,
2、MaterialButton设置无法点击、失效。
使用IgnorePointer
或者AbsorbPointer
包裹按钮,设置属性ignoring
即可。
return IgnorePointer(
ignoring: true,// false无效
child: MaterialButton(
elevation: 0,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(8),
),
),
onPressed: () {
},
child: const Align(
alignment: Alignment.center,
child: Text(
"点击无效",
),
),
),
);