Как установить закругленную границу для MaterialButton на Flutter? - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь установить округлую границу для моего MaterialButton, для этого я устанавливаю RoundedRectangleBorder, чтобы придать атрибуту MaterialButton, проблема в том, что он не имеет эффекта.

Код:

  Widget _showNeedHelpButton() {
    return new Padding(      
      padding: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0),
      child: new MaterialButton(
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(20.0))),
        elevation: 5.0,
        minWidth: 200.0,
        height: 35,
        color: Color(0xFF801E48),
        child: new Text('Preciso de ajuda',
            style: new TextStyle(fontSize: 16.0, color: Colors.white)),
        onPressed: () {
          setState(() {
            _isNeedHelp = true;
          });
        },
      ),
    );
  }

Результат:

enter image description here

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Если вам нужно использовать MaterialButton() - вам нужно деформировать кнопку с помощью Material Widget, чтобы получить желаемое поведение.

    Widget _showNeedHelpButton() {
    return Padding(
      padding: EdgeInsets.fromLTRB(0.0, 5.0, 0.0, 0.0),
      child: Material(  //Wrap with Material
        shape: RoundedRectangleBorder(borderRadius:BorderRadius.circular(22.0) ),
        elevation: 18.0,
        color: Color(0xFF801E48),
        clipBehavior: Clip.antiAlias, // Add This
        child: MaterialButton(
          minWidth: 200.0,
          height: 35,
          color: Color(0xFF801E48),
          child: new Text('Preciso de ajuda',
              style: new TextStyle(fontSize: 16.0, color: Colors.white)),
          onPressed: () {
//          setState(() {
//            _isNeedHelp = true;
//          });
          },
        ),
      ),
    );
  }

Вывод: enter image description here

ОБНОВЛЕНИЕ:

  minWidth: 200.0,
  height: 95,

enter image description here

0 голосов
/ 22 февраля 2019

Вы пробовали обернуть его в ClipRRect()?

ClipRRect(
  borderRadius: BorderRadius.all(Radius.circular(20.0)),
  child: MaterialButton(...),
),

. Документацию можно найти здесь: ClipRRect ()

...