【问题标题】:Flutter: Set default TextField property across the whole appFlutter:在整个应用程序中设置默认 TextField 属性
【发布时间】:2020-05-10 19:01:59
【问题描述】:

有没有办法可以将默认的TextField textCapitilisation 设置为TextCapitilisation.sentences,这样我就不必每个TextField 都添加到它?

理想情况下在 ThemeData 中?

【问题讨论】:

  • 我认为没有办法使用 ThemeDate 做到这一点,但您可以创建自己的 TextField 小部件,用您的大写字母构建 TextField

标签: flutter


【解决方案1】:

就像@F Perroch 所说,我认为这也不可能,但您可以为所有TextField 小部件创建一个Custom TextField,并在适当的地方使用它们,如下例所示:

创建如下所示的 CustomTextField 小部件

class CustomTextField extends StatelessWidget {
  /// define property of text fields you want here
  final String hinText;
  final String labelText;
  final Widget icon;
  final TextStyle labelStyle;
  CustomTextField({this.hinText, this.labelText, this.icon, this.labelStyle});

  @override
  Widget build(BuildContext context) {
    return TextField(
      // set your text capitalization here
      textCapitalization: TextCapitalization.sentences,
      decoration: InputDecoration(
        /// set other properties here
        hintText: hinText,
        labelText: labelText,
        labelStyle: labelStyle,
        prefixIcon: icon,
      ),
    );
  }
}

在下面的任意位置调用 CustomTextField 小部件

CustomTextField(
  hintText: 'Hello',
  labelText: 'Hi there',
  labelStyle: TextStyle(....),
  icon: Icon(Icons.person)
),

我希望这能回答你的问题。

【讨论】:

    猜你喜欢
    • 2020-06-08
    • 2012-02-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2012-12-28
    相关资源
    最近更新 更多