#flutter
#flutter
Вопрос:
Я хочу написать простой Customizedtextfieldwidget, который наследуется от textfieldwidget с некоторым заданным атрибутом.
Например:
class CustomizedTextFieldWidget extends TextFormField {
CustomizedTextFieldWidget() : super(
textAlign: TextAlign.right
);
}
Я хочу использовать виджет так же, как TextFormField, который унаследовал все атрибуты TextFormField, такие как:
CustomizedTextFieldWidget(decoration: InputDecoration(...))
Могу ли я как-нибудь это сделать?
Обновить:
Поскольку я собираюсь часто использовать виджет и хотел бы сделать свой код немного чище, есть ли какой-либо способ экспортировать настройку атрибута TextFieldWidget, чтобы:
TextFieldWidget(
setting: Mysetting,
//usual attribute afterward
)
Ответ №1:
попробуйте
class CustomizedTextFieldWidget extends TextFormField {
CustomizedTextFieldWidget({InputDecoration decoration}) : super(
decoration: decoration,
);
}
Комментарии:
1. Означает ли это, что если у меня есть другой атрибут, который я хотел бы использовать, единственный способ сделать это — поместить их как часть ввода constructor в мой настраиваемый класс widget? Поскольку я собираюсь часто использовать виджет и хотел бы сделать свой код немного чище, есть ли какой-нибудь способ, например, экспортировать настройку атрибута TextFieldWidget, такую, что: TextFieldWidget(настройка: Mysetting, //обычный атрибут после)
2. это единственный способ, который я знаю до сих пор
3. Тем не менее, большое вам спасибо, ваше решение все еще помогает. <3
4. В общем, композиция предпочтительнее наследования для виджетов, потому что элементы, которые должны быть предоставлены конструктору, могут со временем увеличиваться, и ваш подкласс станет недействительным или несовместимым.