我在我的应用程序上使用 intl 进行翻译,当我在 hintText 上使用翻译时遇到问题,我收到此错误:
Arguments of a constant creation must be constant expressions
示例代码:
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?
最佳答案
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
)
)
关于dart - 变量 hintText TextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52016110/