如何在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 滚动条库:

  1. draggable_scrollbar

  2. alphabet scrolling

您可以将 ListView 包装在 Scrollbar 小部件中

Scrollbar(
    child: ListView.builder(...),
)

我认为最好使用 CupertinoScrollbar 而不是 ScrollbarCupertinoScrollbar 可以触摸并滚动到底部..

例如:

 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();
ScrollbarListView 属性中添加 _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),
                  ],
                ),
              ),
            );
          },
        ),
      )