Изучение различных методов добавления границ к кнопкам флаттер-материала

Во Flutter кнопки материалов обычно используются для создания интерактивных элементов в пользовательских интерфейсах. Добавление границ к этим кнопкам может повысить их визуальную привлекательность и выделить их. В этой статье мы рассмотрим различные методы добавления границ к кнопкам Flutter Material, сопровождаемые примерами кода.

Метод 1: Виджет-контейнер
Один из способов добавить рамку к кнопке «Материал» — обернуть ее виджетом-контейнером. Виджет «Контейнер» позволяет вам определять свойства границы, такие как цвет, ширина и стиль. Вот пример:

Container(
  decoration: BoxDecoration(
    border: Border.all(
      color: Colors.blue,
      width: 2.0,
    ),
    borderRadius: BorderRadius.circular(8.0),
  ),
  child: MaterialButton(
    onPressed: () {
      // Button action
    },
    child: Text('Button'),
  ),
)

Метод 2: FlatButton с ShapeBorder
Виджет FlatButton во Flutter позволяет настраивать его внешний вид с помощью ShapeBorder. Вы можете создать RoundedRectangleBorder со свойствами границы и назначить его свойству формы FlatButton. Вот пример:

FlatButton(
  shape: RoundedRectangleBorder(
    side: BorderSide(
      color: Colors.blue,
      width: 2.0,
    ),
    borderRadius: BorderRadius.circular(8.0),
  ),
  onPressed: () {
    // Button action
  },
  child: Text('Button'),
)

Метод 3: InkWell с чернилами
Виджет InkWell обеспечивает эффект пульсации дизайна Material при нажатии кнопки. Объединив его с виджетом «Чернила», вы можете создать кнопку с рамкой. Вот пример:

InkWell(
  onTap: () {
    // Button action
  },
  child: Ink(
    decoration: BoxDecoration(
      border: Border.all(
        color: Colors.blue,
        width: 2.0,
      ),
      borderRadius: BorderRadius.circular(8.0),
    ),
    child: Padding(
      padding: EdgeInsets.all(8.0),
      child: Text('Button'),
    ),
  ),
)

Метод 4: ElevatedButton с ButtonStyle
Виджет ElevatedButton, представленный во Flutter 2.0, также можно настроить с помощью ButtonStyle. Вы можете определить границу для кнопки, используя свойство стиля onPressed. Вот пример:

ElevatedButton(
  style: ButtonStyle(
    side: MaterialStateProperty.all(
      BorderSide(
        color: Colors.blue,
        width: 2.0,
      ),
    ),
    shape: MaterialStateProperty.all(
      RoundedRectangleBorder(
        borderRadius: BorderRadius.circular(8.0),
      ),
    ),
  ),
  onPressed: () {
    // Button action
  },
  child: Text('Button'),
)

В этой статье мы рассмотрели несколько способов добавления границ к кнопкам Flutter Material. Используя виджет «Контейнер», FlatButton с ShapeBorder, InkWell с Ink и ElevatedButton с ButtonStyle, вы можете добиться различных стилей границ для своих кнопок. Не стесняйтесь экспериментировать с разными цветами, шириной и радиусом границы, чтобы они соответствовали дизайну вашего приложения.