如何阻止 Gridview.builder 的滚动条在颤动中显示

Posted

技术标签:

【中文标题】如何阻止 Gridview.builder 的滚动条在颤动中显示【英文标题】:How Do I Stop the scrollbar of Gridview.builder from showing in flutter 【发布时间】:2021-11-29 17:41:32 【问题描述】:

我在 Rawscrollbar 中有一个 Gridview,滚动时两个滚动条都显示。 我想要的只是要显示的 rawscrollbar,我该怎么办?

@override
 Widget build(BuildContext context) 
   return Expanded(
     child: RawScrollbar(
       thumbColor: customAppColors.secondaryColor,
       isAlwaysShown: true,
       child: GridView.builder(
         padding: EdgeInsets.all(10),
         shrinkWrap: true,
         gridDelegate: SliverGridDelegateWithFixedCrossAxisCountAndFixedHeight(
           crossAxisCount: 3,
           crossAxisSpacing: 3,
           mainAxisSpacing: 3,
           height: 170,
         ),
         itemBuilder: (_, index) 
           return Card();
         ,
         itemCount: list.length,
       ),
     ),
   );
 

【问题讨论】:

@pskink 请问我该怎么做?我还是个新手 阅读ScrollBehavior官方文档 这个答案可能对你有帮助link @HosamHasan 非常感谢你,它解决了它 我很高兴你解决了它,继续努力???? 【参考方案1】:

我通过使用 ScrollConfiguration 小部件解决了这个问题,并将 Grid 视图滚动条小部件设置为 false

见下面的代码

@override
  Widget build(BuildContext context) 
    return Expanded(
      child: RawScrollbar(
        controller: _scrollController,
        isAlwaysShown: true,
        thickness: 5,
        radius: Radius.circular(20),
        thumbColor: Colors.yellow,
        child: ScrollConfiguration(
          behavior: ScrollConfiguration.of(context).copyWith(
            scrollbars: false,
          ),
          child: GridView.builder(
            padding: EdgeInsets.all(10),
            shrinkWrap: true,
            controller: _scrollController,
            gridDelegate:
                SliverGridDelegateWithFixedCrossAxisCount(),
            itemBuilder: (_, index) 
              return Card(

              );
            ,
            itemCount: list.length,
          ),
        ),
      ),
    );
  

【讨论】:

以上是关于如何阻止 Gridview.builder 的滚动条在颤动中显示的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中计算 GridView.builder 的 childAspectRatio

Flutter学习 可滚动Widget 中

Flutter学习 可滚动Widget 中

带有 Firebase 实时数据库和 futurebuilder 的 Gridview.builder

为啥 GridView.builder 返回高度扩展的元素,而 ListView.Seperated 返回具有正常高度的元素?

如何设置gridview的孩子的宽度以匹配屏幕宽度?