我有一个Stack,其中包含一个TextField。该TextField位于堆栈的溢出范围内,因此我无法将焦点放在此TextField上。
我有这样的东西:
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.only(left: 10, right: 10, bottom: expanded ? 10 : 50),
color: AppColors.LIGHT_BLUE,
child: Stack(overflow: Overflow.visible,
children: <Widget>[
_searchField(),
ExpansionPanelList(
expansionCallback: (int index, bool isExpanded) {
setState(() {
expanded = !expanded;
});
},
children: <ExpansionPanel>[
...
])
]));
}
Widget _searchField() {
if (!expanded) {
return Transform.translate(
offset: Offset(0, 50),
child: IngredientSearchField(
searchFilterController: widget.searchFilterController,
hint: 'Search in List'));
} else {
return Container();
}
}
IngredientSearchField
是一个包含TextField的小部件。我最初使用Positioned
来包装此字段,但遇到了这个问题:https://github.com/flutter/flutter/issues/19445-那里的一个想法是改用Transform.translate,但这也不起作用。堆栈不是正确的方法吗?