[英]Flutter Scrollbar for Listview.Builder
I would like to implement a Scrollbar on a Listview.Builder infinite list with over 100 cards.我想在包含 100 多张卡片的 Listview.Builder 无限列表上实现滚动条。 However, while the below code runs, the scrollbar does not appear at any time.
然而,当下面的代码运行时,滚动条不会在任何时候出现。 It is always invisible.
它总是不可见的。
I am wrapping the Listview.Builder in the scrollview, seen below.我将 Listview.Builder 包装在滚动视图中,如下所示。
I have seen little documentation on Flutter's Scrollbar besides the official docs.除了官方文档外,我很少看到关于 Flutter 的 Scrollbar 的文档。 https://docs.flutter.io/flutter/material/Scrollbar-class.html
https://docs.flutter.io/flutter/material/Scrollbar-class.html
Any advice would be greatly appreciated!任何建议将不胜感激!
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("Cards"),
),
body: new RefreshIndicator(
child: new Container(
child: new Column(
children: <Widget>[
new Flexible(
child: new StreamBuilder(
stream: FirebaseStream
builder: (context, snapshot) {
//I wrap the Listview.builder
//in the Scrollbar right below here
new Scrollbar(child: ListView.builder(
controller: _CardExamplecrollController,
[code continues...]
Wrapping ListView
with a Scrollbar
widget should display a scrollbar when the list is scrolled, regardless if you're using ListView.builder
or List<Widget>
for the ListView.使用
Scrollbar
小部件包装ListView
应该在列表滚动时显示滚动条,无论您使用的是ListView.builder
还是List<Widget>
作为 ListView。 Verified using Flutter stable channel version 1.22.4使用 Flutter 稳定通道版本 1.22.4 验证
Here's a sample这是一个示例
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Scrollbar(
child: ListView.builder(
itemCount: 30,
itemBuilder: (context, index) {
return Card(
child: Container(
padding: EdgeInsets.all(16.0),
child: Text('Item ${index + 1}'),
),
);
},
),
),
),
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.