gpt4 book ai didi

Flutter:作为FAB的自定义widget,Inkwell不尊重圆形,波纹是矩形

转载 作者:IT王子 更新时间:2023-10-29 07:18:38 26 4
gpt4 key购买 nike

为了在按钮上添加发光效果,我使用了“Frankenstein-ed”这段代码:

floatingActionButton: Container(
decoration: BoxDecoration(boxShadow: [
new BoxShadow(
color: Colors.pinkAccent,
blurRadius: 50.0,
),
]),
child: Material(
shape: CircleBorder(),
color: Colors.pink,
child: InkWell(
onTap: (){print('tap');},
child: Padding(
padding: const EdgeInsets.all(20.0), child: Icon(Icons.add)),
),
), //Icon(Icons.add),
),

Material 中的形状是圆形,但 Inkwell 处理的波纹效果超出了圆形。

我尝试用 Container 包装 Inkwell:

Container(
decoration: BoxDecoration(shape: BoxShape.circle),
child: InkWell(
onTap: (){print('tap');},
child: Padding(
padding: const EdgeInsets.all(20.0), child: Icon(Icons.add)),
),
),

并用Container包装Padding:

floatingActionButton: Container(
decoration: BoxDecoration(boxShadow: [
new BoxShadow(
color: Colors.pinkAccent,
blurRadius: 50.0,
),
]),
child: Material(
shape: CircleBorder(),
color: Colors.pink,
child: InkWell(
onTap: (){print('tap');},
child: Container(
decoration: BoxDecoration(shape: BoxShape.circle),
child: Padding(
padding: const EdgeInsets.all(20.0), child: Icon(Icons.add)),
),
),
), //Icon(Icons.add),
),

但没有运气。

根据 Gaspard Merten 的回答进行编辑:

尝试此代码不会改变涟漪效应的行为:

Material(
shape: CircleBorder(),
color: Colors.pink,
child: Container(
decoration: BoxDecoration(boxShadow: [
new BoxShadow(
color: Colors.pinkAccent,
blurRadius: 50.0,
),
]),
child: InkWell(
onTap: () {
onClick();
},
child: Container(
decoration: BoxDecoration(shape: BoxShape.circle),
child: Padding(
padding: const EdgeInsets.all(20.0), child: Icon(icon)),
),
), //Icon(Icons.add),
),
);

最佳答案

您可以使用 ClipRRect 并剪辑 Material 小部件而不是容器:

ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(7.0)),
child: YourMaterialButton
)

关于Flutter:作为FAB的自定义widget,Inkwell不尊重圆形,波纹是矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56512945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com