flutter - 颤振:使用 RefreshIndicator 时没有刷新指示器
问题描述
我将 RefreshIndicator 添加到我的页面,但拉动刷新时没有可见的指示器。代码如下:
class HomePage extends StatefulWidget {
HomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: LocalGalleryTab(),
);
}
}
class LocalGalleryTab extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _LocalGalleryState();
}
}
class _LocalGalleryState extends State<LocalGalleryTab> {
@override
Widget build(BuildContext context) {
return new Container(child: new Center(
child: new RefreshIndicator(
child: Text("Local Gallery"),
onRefresh: _refreshLocalGallery,
),
));
}
Future<Null> _refreshLocalGallery() async{
print('refreshing stocks...');
}
}
如何使用刷新指示器?颤振文档没有提供太多信息。
解决方案
使用AlwaysScrollableScrollPhysics()
将确保滚动视图始终是可滚动的,因此可以触发RefreshIndicator
.
现在我认为创建滚动物理,BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics)
而不仅仅是AlwaysScrollableScrollPhysics()
滚动物理。因为 BouncingScrollPhysics 适用于反弹的短列表。现在需要包含 AlwaysScrollableScrollPhysics 才能获得预期的行为。
RefreshIndicator(
onRefresh: _onRefresh,
child: ListView(
padding: EdgeInsets.all(8.0),
physics: const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
children: _listData.map((i) {
return ListTile(
title: Text("Item $i"),
);
}).toList(),
)
);
推荐阅读
- java - logback 无法登录调试
- python - Plotly:如何在 plotly express 折线图中更改图例的变量/标签名称?
- java - 在 Kotlin 中为 Android 开发时应该使用哪些 api 文档?
- linux - 使内核 5.9 错误失败:从 vmlinux 加载 BTF
- python - 使用 BeautifulSoup 从 UPS 网站提取表格
- python - 基于替换和不替换规则的子字符串替换
- javascript - 服务器端渲染构建错误期间 Gatsby 窗口不可用
- oracle - 同一张表oracle的嵌套查询
- apache-spark - 将 pyspark 数据帧写入 kms 加密的 s3 存储桶
- javascript - 使用 React 路由器
不会重定向到任何地方,但为什么呢?