dart - 变量 hintText TextField

标签 dart flutter

我在我的应用程序上使用 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/

相关文章:

flutter - 如何缓存图像而不影响UI和GPU性能

html - 我们可以使用 flutter 将PDF转换为图像以显示文件的缩略图吗?

flutter - 时间为23:59:59时如何更新Widget?

dart - @ 在 Dart 程序中做什么?

dart - 请在这里解释一下 Dart 中 Futures 的行为

flutter - 内部流监听 DART 的返回结果

android - Firebase 身份验证 - 电话 - "INVALID_CERT_HASH"

firebase - 如何使用底部导航栏在flutter中的两个页面之间传递数据

flutter - 根据存储在flutter中的共享首选项中的“记住我”状态导航到屏幕

flutter - Dart/Flutter 中的 AsyncMemoizer