如何在ListView中添加滚动指示器
How to add scroll indicator in ListView
有没有办法在 ListView
上显示滚动指示器?
这是我的基本代码:
ListView.builder(
itemCount: 50,
itemBuilder: (context, index) => ListTile(title: Text("Item= ${index + 1}"),),
)
感谢Günter Zöchbauer。
您可以将 ListView
包裹在 Scrollbar
中
Scrollbar(
child: ListView.builder(
itemCount: 50,
itemBuilder: (context, index) => ListTile(title: Text("Item= ${index + 1}"),),),
)
您可以实现这个 designer 滚动条库:
或
您可以将 ListView 包装在 Scrollbar
小部件中
Scrollbar(
child: ListView.builder(...),
)
我认为最好使用 CupertinoScrollbar
而不是 Scrollbar
。 CupertinoScrollbar
可以触摸并滚动到底部..
例如:
CupertinoScrollbar(
child: ListView.builder(...),
或
Scrollbar(
child: ListView.builder(...),
在此代码中:如何在 ListView
中显示的示例
child: Scrollbar(
child: ListView.builder(
padding: EdgeInsets.all(5),
itemCount: snapshot.data.length,
physics: BouncingScrollPhysics(),
itemBuilder: (context, index) {
return generateColum(snapshot.data[index], index);
}),
),
创建一个 ScrollController 变量(ScrollController _scrollController);
Instatiate _scrollController
inside initState()
或者任何你想要的地方,_scrollController = ScrollController();
在 Scrollbar
和 ListView
属性中添加 _scrollController
变量,
controller:_scrollController
代码如下:
ScrollController _scrollController;
@override
void initState() {
super.initState();
_scrollController = ScrollController();
}
Scrollbar(
isAlwaysShown: true,
controller: _scrollController,
child: ListView(
controller: _scrollController,
)
如果您不希望它总是显示设置为 false
isAlwaysShown: false,
Scrollbar(
thickness: 10,
isAlwaysShown: true,
child: ListView.builder(
itemCount: _controller().transactonsList.length,
itemBuilder: (context, index) {
return Card(
elevation: 5,
child: Container(
padding: const EdgeInsets.only(bottom: 16),
height: 80,
child: Row(
children: [
SizedBox(width: 10),
amountOfTransaction(index),
SizedBox(width: 16),
dateAndTitleOfTransaction(index),
],
),
),
);
},
),
)
有没有办法在 ListView
上显示滚动指示器?
这是我的基本代码:
ListView.builder(
itemCount: 50,
itemBuilder: (context, index) => ListTile(title: Text("Item= ${index + 1}"),),
)
感谢Günter Zöchbauer。
您可以将 ListView
包裹在 Scrollbar
Scrollbar(
child: ListView.builder(
itemCount: 50,
itemBuilder: (context, index) => ListTile(title: Text("Item= ${index + 1}"),),),
)
您可以实现这个 designer 滚动条库:
或
您可以将 ListView 包装在 Scrollbar
小部件中
Scrollbar(
child: ListView.builder(...),
)
我认为最好使用 CupertinoScrollbar
而不是 Scrollbar
。 CupertinoScrollbar
可以触摸并滚动到底部..
例如:
CupertinoScrollbar(
child: ListView.builder(...),
或
Scrollbar(
child: ListView.builder(...),
在此代码中:如何在 ListView
child: Scrollbar(
child: ListView.builder(
padding: EdgeInsets.all(5),
itemCount: snapshot.data.length,
physics: BouncingScrollPhysics(),
itemBuilder: (context, index) {
return generateColum(snapshot.data[index], index);
}),
),
创建一个 ScrollController 变量(ScrollController _scrollController);
Instatiate _scrollController
inside initState()
或者任何你想要的地方,_scrollController = ScrollController();
在 Scrollbar
和 ListView
属性中添加 _scrollController
变量,
controller:_scrollController
代码如下:
ScrollController _scrollController;
@override
void initState() {
super.initState();
_scrollController = ScrollController();
}
Scrollbar(
isAlwaysShown: true,
controller: _scrollController,
child: ListView(
controller: _scrollController,
)
如果您不希望它总是显示设置为 false
isAlwaysShown: false,
Scrollbar(
thickness: 10,
isAlwaysShown: true,
child: ListView.builder(
itemCount: _controller().transactonsList.length,
itemBuilder: (context, index) {
return Card(
elevation: 5,
child: Container(
padding: const EdgeInsets.only(bottom: 16),
height: 80,
child: Row(
children: [
SizedBox(width: 10),
amountOfTransaction(index),
SizedBox(width: 16),
dateAndTitleOfTransaction(index),
],
),
),
);
},
),
)