【问题标题】:How can I copy another buttons style?如何复制另一种按钮样式?
【发布时间】:2019-04-16 03:11:50
【问题描述】:

我有一个带有 labelText“描述”的 TextField 小部件。

我正在尝试使此 TextField 具有与 FlatButton 小部件相同的样式

我正在阅读有关使用 copyWith 的信息,但我不完全了解如何使用它。

我也在看https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/flat_button.dart,但我真的不认为这能解释多少

return TextField(
  style: TextStyle(),
  onChanged: _bloc.changeEventDescription,
  decoration: InputDecoration(
      labelText: "Description", border: InputBorder.none),
);

设置border: InputBorder.none至少摆脱了FlatButton下面的行

梦想是让TextField 看起来像默认的FlatButton

谢谢!!

【问题讨论】:

  • hmm 添加一些您需要的图片。 Theme 是一个继承的Widget,因此您可以使用 Theme.of(context) 从任何小部件访问。
  • @diegoveloper 我如何使用这个获取默认平面按钮的字体颜色、样式和大小?
  • 两者都是不同类型的小部件,但您可以尝试构建一个自定义的平面按钮,您可以添加一张您需要的图片吗?
  • 我明白了,但我希望平面按钮在单击时有一个文本字段。我不确定如何显示我想要的图片,当不点击时它看起来就像一个平面按钮
  • 你可以自定义flatbutton,所以我们不知道你想要什么类型的设计

标签: dart flutter flutter-layout


【解决方案1】:

您可以扩展FlatButton 并创建自定义小部件(就像FlatButton 扩展MaterialButton)。所以你的班级看起来像这样 -

class myButton extends FlatButton {}

您可以将 child 覆盖为 TextFormField

【讨论】:

  • 哦,有道理。我将如何使用它来实际创建一个看起来像 FlatButton 的 TextField?
  • 告诉我一些事情,你为什么不这样做呢? FlatButton( color: Colors.yellow, onPressed: () { print('pressed'); }, child: TextField( decoration: null, ), )(可以加装饰)
  • 我想我的问题是,FlatButton 的默认字体大小和字体是多少?
  • 这与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)中的这段代码
猜你喜欢
  • 2013-08-06
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多