[英]Flutter. How to manage state with SliverPersistentHeaderDelegate in Sliver?
I use CustomScrollView with Slivers.我将 CustomScrollView 与 Slivers 一起使用。 In header I have some text field with autocomplete (search data in database) and when input text equal some value I need do something.
在 header 我有一些带有自动完成功能的文本字段(在数据库中搜索数据),当输入文本等于某个值时,我需要做一些事情。 I try to use SliverPersistentHeader.
我尝试使用 SliverPersistentHeader。 But it can't set state.
但不能设置state。 How to set state?
如何设置 state?
The declaration setState() isn't referenced
What's wrong?怎么了?
class MySliverAppBar extends SliverPersistentHeaderDelegate {
final double expandedHeight;
MySliverAppBar({@required this.expandedHeight});
@override
Widget build(
BuildContext context, double shrinkOffset, bool overlapsContent) {
return
StatefulBuilder(
builder:(BuildContext context, StateSetter setState) {
return Stack(
overflow: Overflow.visible,
children: [
SizedBox(
height: 200,
child: AppBar(
backgroundColor: Colors.green,
leading: IconButton(
icon: Icon(Icons.menu),
onPressed: () {},
),
elevation: 0.0,
),
),
RaisedButton(
child: Text("Press"),
color: Colors.yellow,
onPressed: (){
setState(){
// The declaration setState() isn't referenced
}
},),
],
);
}
);
}
@override
double get maxExtent => expandedHeight;
@override
double get minExtent => kToolbarHeight;
@override
bool shouldRebuild(SliverPersistentHeaderDelegate oldDelegate) => true;
}
Try to use this on:尝试在以下情况下使用它:
StatefulBuilder(
builder:(BuildContext context, StateSetter setState) {
return //Whatever you want to use here ();
},
),
If It doesn't work comment down pls.如果它不起作用请评论下来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.