How do I add a border to a flutter button?

后端 未结 2 379
难免孤独
难免孤独 2021-01-02 04:51

I\'ve just recently gotten into flutter and am loving it so far but I\'ve gotten stuck on some UI changes. Any help is appreciated!

My goal is to get a circular butt

2条回答
  •  醉梦人生
    2021-01-02 05:32

    Hi Kathleen and welcome!

    You can achieve what you want by diving a little deeper into the widgets that make up MaterialButton.

    First you need the Ink widget. This offers more flexible styling using a BoxDecoration.

    Ink can then contain an InkWell widget which recognises onTap and draws the splash effect. By default, the splash continues to the edges of the containing box, but you can make it circular by giving InkWell a really big borderRadius.

    Here's an example of the button you're after:

    Material(
      type: MaterialType.transparency, //Makes it usable on any background color, thanks @IanSmith
      child: Ink(
        decoration: BoxDecoration(
          border: Border.all(color: Colors.indigoAccent, width: 4.0),
          color: Colors.indigo[900],
          shape: BoxShape.circle,
        ),
        child: InkWell(
          //This keeps the splash effect within the circle
          borderRadius: BorderRadius.circular(1000.0), //Something large to ensure a circle
          onTap: _messages,
          child: Padding(
            padding:EdgeInsets.all(20.0),
            child: Icon(
              Icons.message,
              size: 30.0,
              color: Colors.white,
            ),
          ),
        ),
      )
    ),
    

    And here's the result:

提交回复
热议问题