【发布时间】:2019-08-06 18:32:39
【问题描述】:
我想在应用栏中放置一个搜索栏。所以我声明了 Appbar 给它一个 TextField 作为标题,并在控制器上放置了一个监听器:
class _SearchView extends State<SearchView> {
TextField appBarTitle;
final TextEditingController _filterController = new TextEditingController();
@override
void initState() {
buildAppBarTitle();
super.initState();
}
TextField buildAppBarTitle() {
return appBarTitle = new TextField(
controller: _filterController,
decoration: new InputDecoration(
hintText: AppLocalization.of(context).search
)
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: appBarTitle,),
}
}
问题是:hintText: AppLocalization.of(context).search。由于在 Widget 构建之外,它没有上下文。如何设置此提示文本?
【问题讨论】:
-
您是否尝试将上下文从“build”方法发送到“buildAppBarTitle”方法作为参数?
-
你的意思是做这样的事情: TextField buildAppBarTitle(BuildContrext context){ return appBarTitle.... } 然后在构建中: appBar: AppBar(title:buildAppBarTitle(context)) ?
-
是的,就像那样。
-
它中断:堆栈溢出
-
是完整的代码吗?您在哪里将 buildAppBarTitle() 结果分配给 appBarTitle 变量?
标签: flutter internationalization searchbar appbar