flutter - 如何使用颤振的 NestedScrollView?
问题描述
我实现了一些NestedScrollView
如下。它会导致错误“必须使用包含 NestedScrollView 的上下文调用”。但我曾经Builder
构建小部件,那是在颤振文档的手册中。我应该怎么办?
return NestedScrollView(
headerSliverBuilder: (context, isInScroll) {
/* something*/
},
body: Hero(
tag: widget.folderInfo.title + 'body',
child: Container(
padding: EdgeInsets.fromLTRB(16.0, 20.0, 16.0, 16.0),
child: Builder(
builder: (context) {
print("built body builder");
// below line causes error "must be called with a context that contains a NestedScrollView"
var handle =
NestedScrollView.sliverOverlapAbsorberHandleFor(context);
);
},
),
),
),
);
解决方案
该Builder
函数需要一个您提供的代码中似乎缺少的 return 语句。
test
下面的代码工作并在屏幕上打印:
return NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar()
];
},
body: Hero(
tag: 'test',
child: Container(
padding: EdgeInsets.fromLTRB(16.0, 20.0, 16.0, 16.0),
child: Builder(builder: (context) {
var handle = NestedScrollView.sliverOverlapAbsorberHandleFor(context);
print('test');
return Container( . // whatever you want to return here
child: Text('test'),
);
print('test');
})
),
),
);
推荐阅读
- postgresql - SQL avg() 不正确
- c++ - 生成随机 uint64_t
- reactjs - 如何显示地图中的元素?(反应)
- php - 如何忽略大小写敏感并计算数组值?
- deep-learning - 目标检测中边界框坐标之间的关系
- c# - iCloud:在 iOS 和 Mac 之间同步键值存储。适用于 Mac、C# 和 Xamarin 的 Visual Studio
- c# - Bot Framework 4.0 等效
- ibm-cloud-infrastructure - 删除用户配置文件中的权限
- reactjs - React Hooks:如何在 useEffect 中设置状态?
- python - 在 Python 中使用 TK 创建带有文本的进度条