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:


            onTap: () {},
            hoverColor: Colors.red[200],
            child: Container(
              width: 70.w,
              height: 60.h,
              decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(20),
              child: Row(
                children: [
                    height: 30.h,
                    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: Matthias

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


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

Solution 2: Sh4msi

The Inkwell widget has a property borderRadius of type BorderRadius

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


  customBorder: CircleBorder(),
  // ...

Solution 3: Ritesh Ghimire

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

Solution 4: Konstantin Kozirev

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

Solution 5: RuslanBek

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 6: Ced

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.