'Add border Radius in the Inkwell widget in flutter

I want to add a hover color property to a container using the inkwell widget but the container has its own border-radius and when I am using the hover property using inkwell it is taking its custom shape and making it look rectangle in shape after hovering on the inkwell.

Here's my code snippet:

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,
                  ),
                ],
              ),
            ),
          ),

I hope I made you understand the problem well

Please help me solve the issue or provide an alternate to it.



Solution 1:[1]

You can use the clip behavior to not have hard coded values:

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

Note that you need a material widget around InkWell, Card is one, Material is another that could be used.

Solution 2:[2]

The Inkwell widget has a property customBorder of type ShapeBorder. You can use that to provide a borderRadius to your Inkwell.

E.g.:

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

Solution 3:[3]

The Inkwell widget has a property borderRadius of type BorderRadius

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

Solution 4:[4]

Simple and New Approach/Solution

I somehow agree with @Matthias's answer but if you need more realistic answer rather than giving RoundedRectangleBorder to customBorder property, then simply use CircleBorder() like an example below:

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

Solution 5:[5]

To make splash also rounded, use suitable options of clipBehavior for Material widget.

Solution 6:[6]

InkWell(
  borderRadius: BorderRadius.circular(12),
  child: // ...
);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Matthias
Solution 3 Sh4msi
Solution 4
Solution 5 Konstantin Kozirev
Solution 6 enzo