#dart #flutter #flutter-layout
#dart #флаттер #flutter-layout
Вопрос:
У меня есть TextField
виджет с надписью «Description».
Я пытаюсь сделать так, чтобы это текстовое поле имело тот же стиль, FlatButton
что и виджет
Я читал об использовании copyWith
, но я не совсем понимаю, как его использовать.
Я тоже смотрел на https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/flat_button .дарт, но я действительно не думаю, что это многое объясняет
return TextField(
style: TextStyle(),
onChanged: _bloc.changeEventDescription,
decoration: InputDecoration(
labelText: "Description", border: InputBorder.none),
);
Установка border: InputBorder.none
, по крайней мере, избавилась от линии под FlatButton
Мечта состоит в том TextField
, чтобы выглядеть как дефолт FlatButton
Спасибо!!
Комментарии:
1. хм, добавьте несколько картинок о том, что вам нужно. Тема является унаследованным виджетом, поэтому вы можете получить доступ из любого виджета, используя Theme.of (контекст).
2. @diegoveloper Как мне получить цвет шрифта, стиль и размер плоской кнопки по умолчанию, используя это?
3. это разные типы виджетов, но вы можете попробовать создать собственную плоскую кнопку, не могли бы вы добавить картинку о том, что вам нужно?
4. Я понимаю, но я бы хотел, чтобы у flatbutton было текстовое поле при нажатии. Я не уверен в том, как показать изображение того, что я хочу, оно будет буквально выглядеть как плоская кнопка, если ее не щелкнуть
5. Вы можете настроить flatbutton , поэтому мы не знаем, какой тип дизайна вы хотели бы
Ответ №1:
Вы можете расширить FlatButton
и создать пользовательский виджет (точно так же, как FlatButton
extends MaterialButton
). Итак, ваш класс будет выглядеть примерно так —
class myButton extends FlatButton {}
Вы можете переопределить дочерний TextFormField
элемент.
Комментарии:
1. О, это имеет смысл. Как бы я мог использовать это, чтобы на самом деле создать текстовое поле, которое выглядит как плоская кнопка?
2. Скажите мне кое-что, почему бы вам просто не сделать это?
FlatButton( color: Colors.yellow, onPressed: () { print('pressed'); }, child: TextField( decoration: null, ), )
(Вы можете добавить оформление, если хотите)3. Я думаю, мой вопрос в том, каков размер шрифта по умолчанию и шрифт плоской кнопки?
4. Это то же
RawMaterialButton
самое, что и, и вы можете использоватьButtonTheme
для этого. Обратите внимание на этот код вFlatButton
—highlightColor: buttonTheme.getHighlightColor(this), splashColor: buttonTheme.getSplashColor(this), elevation: buttonTheme.getElevation(this), highlightElevation: buttonTheme.getHighlightElevation(this), disabledElevation: buttonTheme.getDisabledElevation(this), padding: buttonTheme.getPadding(this)