在主题中设置TextFromField样式

时间:2019-11-18 19:29:38

标签: flutter dart flutter-layout

因此,在我的flutter应用程序中,我创建了TextFormField用作类似的输入(并将其返回到脚手架中):

img = nib.load('fMRI.nii.gz')

# get the first 10 slices
img.slicer[0:10]

#verify selection
img.slicer[0:10].shape

我想在final password = TextFormField( controller: passController, autofocus: false, obscureText: true, decoration: InputDecoration(hintText: 'Password'), style: new TextStyle(color: Colors.orange), ); 内更改style属性,但是找不到要指定的属性。

我能找到的最接近的一个是themeData,但是这个对我的TextFormField没有任何作用。

如何设置TextFormField样式?请帮助,我真的是Dart和编程的新手。我目前13岁,没有人可以帮助我解决这类问题。

P.S:如果需要,完整的代码在GitHub上:https://github.com/Legolaszstudio/novynotifier

2 个答案:

答案 0 :(得分:1)

我相信您正在寻找subhead

textTheme: TextTheme(
    subhead: TextStyle(color: Colors.orange),
)

答案 1 :(得分:1)

嗯!这是一个很长的问题。 TextFormFieldTextField的子类。默认样式TextField可以从下面的源中找到。

final TextStyle style = themeData.textTheme.subhead.merge(widget.style);

因此,您有两种针对源代码的解决方案。

解决方案1 ​​

  • 将删除style属性输入到password
final password = TextFormField(
  controller: passController,
  autofocus: false,
  obscureText: true,
  decoration: InputDecoration(hintText: 'Password'),
  style: new TextStyle(color: Colors.orange), // ★ => Delete this.
);
  • subhead定义自定义DataTheme样式并输入到Material应用中。
MaterialApp(
  theme: ThemeData(
    textTheme: TextTheme(
      subhead: TextStyle(color: Colors.orange),
    ),
  ),
  home: null,
)

解决方案2

  • subhead定义自定义DataTheme样式并输入到Material应用中。
MaterialApp(
  theme: ThemeData(
    textTheme: TextTheme(
      subhead: TextStyle(color: Colors.orange),
    ),
  ),
  home: null,
)
  • 将此子标题样式复制到password
final themes = Theme.of(context);
final password = TextFormField(
  controller: passController,
  autofocus: false,
  obscureText: true,
  decoration: InputDecoration(hintText: 'Password'),
  style: themes.textTheme.subhead, // ★ => Update this.
);