Всем привет! Как проходит твой день? Надеюсь, получилось блестяще <3

Мне нужна ваша помощь, я использовал в своем коде много кнопок «Материал» и «Материал», но я не знаю, в чем разница между кнопкой «Материал» и Материал кнопки? .

Потому что они похожи при использовании их.

Заранее благодарим <3

2
Hamza 5 Дек 2019 в 16:46

3 ответа

Из документов, прикрепленных к классам:

MaterialButton - служебный класс для создания кнопок Материала, которые зависят от окружающего ButtonTheme и Theme.

А также

RawMaterialButton не использует текущие Theme или ButtonTheme для вычисления значений по умолчанию для неопределенных параметров.

И это действительно так - разница в значениях по умолчанию. Под капотом MaterialButton используется RawMaterialButton

Widget build(BuildContext context) {
    final ThemeData theme = Theme.of(context);
    final ButtonThemeData buttonTheme = ButtonTheme.of(context);

    return RawMaterialButton(
      onPressed: onPressed,
      onHighlightChanged: onHighlightChanged,
      // so many properties here...
      child: child,
      materialTapTargetSize: materialTapTargetSize ?? theme.materialTapTargetSize,
    );
}
5
pr0gramist 5 Дек 2019 в 16:51
Сэр, спасибо. Очень, очень полезно, особенно с Code <3.
 – 
Hamza
6 Дек 2019 в 17:31

Из официальных документов Flutter

Класс MaterialButton

Служебный класс для создания кнопок материала, которые зависят от окружающей ButtonTheme и Theme.

Размер кнопки будет расширен, чтобы соответствовать дочернему виджету, если это необходимо.

MaterialButtons, у которых обработчик onPressed имеет значение null, будут отключены. Чтобы кнопка была включена, убедитесь, что передано ненулевое значение для onPressed.

Класс RawMaterialButton

Этот класс не использует текущую тему или ButtonTheme для вычисления значений по умолчанию для неопределенных параметров.

Он предназначен для использования для настраиваемых кнопок материалов, которые могут включать значения по умолчанию из тем или из источников для конкретных приложений.

1
Community 20 Июн 2020 в 12:12
Спасибо большое, очень помогло :) :)
 – 
Hamza
6 Дек 2019 в 17:31

Класс MaterialButton используется для создания кнопок, которые зависят от окружающего ButtonTheme и Theme. С другой стороны, RawMaterialButton s не использует ButtonTheme или Theme. Согласно документации,

RawMaterialButton не использует ButtonTheme или Theme для вычисления значений по умолчанию для неопределенных параметров. Он предназначен для использования для настраиваемых кнопок Материал , которые могут включать значения по умолчанию из тем или из источников для конкретных приложений.

Дополнительную информацию см. В документации здесь.

1
StonksMan9000 5 Дек 2019 в 16:57
Огромное спасибо. При необходимости я изучу детали документа.
 – 
Hamza
6 Дек 2019 в 17:32