变量hintText TextField

时间:2018-08-25 09:59:31

标签: dart flutter

我在应用程序上使用 intl 进行翻译,当我在hintText上使用翻译时遇到了问题,我遇到了以下错误:

  

常量创建的参数必须是常量表达式

示例代码:

new TextField(
  decoration: const InputDecoration(
    contentPadding: EdgeInsets.only(top: 16.0),
    hintText: AppLocalizations.of(context).search_message, // Variable
      border: InputBorder.none,
    ),
    keyboardType: TextInputType.text,
    textInputAction: TextInputAction.search,
    style: new TextStyle(
    fontSize: 16.0,
    color: Colors.black
  )
)

我知道该错误是由于我正在使用 AppLocalizations.of(context).search_message (这是可变的)引起的,但问题是:我该如何翻译这个hintText?

1 个答案:

答案 0 :(得分:3)

InputDecoration具有const前缀,用于创建const实例。因此,其中的数据应该是恒定的(在编译过程中可用)。

为了解决此问题,只需将const关键字更改为new,这应该可以正常工作:

new TextField(
  decoration: new InputDecoration(
    contentPadding: EdgeInsets.only(top: 16.0),
    hintText: AppLocalizations.of(context).search_message, // Variable
      border: InputBorder.none,
    ),
    keyboardType: TextInputType.text,
    textInputAction: TextInputAction.search,
    style: new TextStyle(
    fontSize: 16.0,
    color: Colors.black
  )
)