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

Pra*_*nha 8 widget dart flutter flutter-layout

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

这是我的代码片段:

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,
                  ),
                ],
              ),
            ),
          ),
Run Code Online (Sandbox Code Playgroud)

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

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

Mat*_*ias 34

Inkwell部件有一个属性customBorder类型ShapeBorder。您可以使用它borderRadius为您的Inkwell.

例如:

customBorder: RoundedRectangleBorder(
    borderRadius: BorderRadius.circular(20),
),
Run Code Online (Sandbox Code Playgroud)

  • 查看下面 @Sh4msi 的答案 - InkWell 上有一个直接的 borderRadius 属性 (3认同)

Sh4*_*msi 10

墨水瓶小部件有一个属性borderRadiusBorderRadius

InkWell(
  borderRadius: BorderRadius.circular(25),
  // ...
);
Run Code Online (Sandbox Code Playgroud)

  • 这个答案更加简短和准确 (2认同)

Rus*_*809 7

简单而新的方法/解决方案

我在某种程度上同意@Matthias的答案,但如果您需要更现实的答案而不是给予RoundedRectangleBorder财产customBorder,那么只需使用CircleBorder()如下示例:

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


Ced*_*Ced 6

当您的小部件已经具有边框半径时,您可以使用剪辑行为来不具有硬编码值,例如Card

    return Card(
      clipBehavior: Clip.antiAlias,
      child: InkWell(
Run Code Online (Sandbox Code Playgroud)


小智 5

InkWell(
  borderRadius: BorderRadius.circular(12),
  child: // ...
);
Run Code Online (Sandbox Code Playgroud)