在 Flutter 中的 Inkwell 小部件中添加边框半径

Posted

技术标签:

【中文标题】在 Flutter 中的 Inkwell 小部件中添加边框半径【英文标题】:Add border Radius in the Inkwell widget in flutter 【发布时间】:2021-02-01 05:49:20 【问题描述】:

我想使用 inkwell 小部件向容器添加悬停颜色属性,但容器有自己的边框半径,当我使用 inkwell 使用悬停属性时,它会采用其自定义形状并使其看起来呈矩形悬停在墨水瓶上之后。

这是我的代码 sn-p:

InkWell(
            
            onTap: () ,
            hoverColor: Colors.red[200],
            child: Container(
              width: 70.w,
              height: 60.h,
              decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(20),
              ),
              child: Row(
                children: [
                  Image.asset(
                    'images/call.png',
                    height: 30.h,
                  ),
                  Text(
                    'Call',
                    style: white,
                  ),
                ],
              ),
            ),
          ),

我希望我让你很好地理解了这个问题

请帮我解决问题或提供替代方案。

【问题讨论】:

InkWell(borderRadius: BorderRadius.circular(20)) 【参考方案1】:

Inkwell 小部件具有 customBorder 类型的 ShapeBorder 属性。您可以使用它为您的Inkwell 提供borderRadius

例如:

customBorder: RoundedRectangleBorder(
    borderRadius: BorderRadius.circular(20),
),

【讨论】:

【参考方案2】:

Inkwell 小部件具有 borderRadius 类型的属性 BorderRadius

InkWell(
  borderRadius: BorderRadius.circular(25),
  // ...
);

【讨论】:

这个答案更简短准确【参考方案3】:

简单的新方法/解决方案

我以某种方式同意 @Matthias 的 回答,但如果您需要更现实的回答而不是将 RoundedRectangleBorder 提供给 customBorder 属性,那么只需使用 CircleBorder(),如下例所示:

InkWell(customBorder: CircleBorder(), // ... );

【讨论】:

【参考方案4】: 要使Splash还舍入,请使用clipBehavior 987654322 @ widgets的合适选项。

【讨论】:

【参考方案5】:

您可以使用剪辑行为来避免硬编码值:

    return Card(
      clipBehavior: Clip.antiAlias,
      child: InkWell(

【讨论】:

【参考方案6】:
InkWell(
  borderRadius: BorderRadius.circular(12),
  child: // ...
);

【讨论】:

以上是关于在 Flutter 中的 Inkwell 小部件中添加边框半径的主要内容,如果未能解决你的问题,请参考以下文章

Flutter InkWell 小部件未通过容器的渐变和颜色显示

如何用 Flutter 处理嵌套的 InkWell?

让小部件在点击另一个小部件时显示 Flutter

InkWell 用于小部件列表?

颤振更新文本小部件变量而无需重新加载

更改 Flutter FlatButton 中的填充颜色?