maigeng 2023-03-29 15:28 采纳率: 80%
浏览 20
已结题

Flutter给ListView组件添加按钮后无法滑动

我没添加按钮的时候,是可以滑动的,但是添加按钮后就滑动不了,这是怎么回事,我后端是可以正常获取分页数据的
截图:

img

这是我的flutter代码

body: ListView.builder(
        physics: AlwaysScrollableScrollPhysics(),
        controller: _scrollController,
        itemCount: _funds.length + (_isLoadingMore ? 1 : 0),
        itemBuilder: (BuildContext context, int index) {
          if (index == _funds.length && _isLoadingMore) {
            return Center(
              child: CircularProgressIndicator(),
            );
          } else if (index == _funds.length) {
            return Container();
          } else {
            return Container(
              padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Expanded(
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Text(_funds[index].name),
                        Text(_funds[index].type),
                      ],
                    ),
                  ),
                  Row(
                    children: [
                      ElevatedButton(
                        style: ElevatedButton.styleFrom(
                          primary: Colors.green, // 按钮背景颜色
                          shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(8.0), // 设置按钮圆角
                          ),
                        ),
                        onPressed: () {
                          print("Selected: ${_funds[index].name} - ${_funds[index].type} 打印自选");
                        },
                        child: Text('自选'),
                      ),
                      SizedBox(width: 8.0), // 添加间隔
                      ElevatedButton(
                        style: ElevatedButton.styleFrom(
                          primary: Colors.red, // 按钮背景颜色
                          shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(8.0), // 设置按钮圆角
                          ),
                        ),
                        onPressed: () {
                          print("Selected: ${_funds[index].name} - ${_funds[index].type} 打印买入");
                        },
                        child: Text('买入'),
                      ),
                      SizedBox(width: 8.0), // 添加间隔
                      ElevatedButton(
                        style: ElevatedButton.styleFrom(
                          primary: Colors.blue, // 按钮背景颜色
                          shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(8.0), // 设置按钮圆角
                          ),
                        ),
                        onPressed: () {
                          print("Selected: ${_funds[index].name} - ${_funds[index].type} 打印打印");
                        },
                        child: Text('打印'),
                      ),
                    ],
                  ),
                ],
              ),
            );
          }
        },
      ),

  • 写回答

2条回答 默认 最新

  • devid008 2023-03-30 12:26
    关注

    这个问题出现的原因是,添加了按钮后,ListView 的子组件变得更加宽了,导致 ListView 的宽度变得比较大,从而无法滑动。

    解决方案是将 ListView.builder 的宽度限制在父容器的宽度内。你可以在 ListView.builder 的外面包裹一个 SizedBox 或者 Container,设置宽度和高度。例如:

    SizedBox(
      width: MediaQuery.of(context).size.width, // 父容器的宽度
      height: MediaQuery.of(context).size.height, // 父容器的高度
      child: ListView.builder(
        physics: AlwaysScrollableScrollPhysics(),
        controller: _scrollController,
        itemCount: _funds.length + (_isLoadingMore ? 1 : 0),
        itemBuilder: (BuildContext context, int index) {
          ...
        },
      ),
    ),
    
    

    这样设置之后,ListView.builder 的宽度就会被限制在父容器的宽度内,从而解决了无法滑动的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 已采纳回答 3月30日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 快手联盟怎么快速的跑出建立模型
  • ¥20 ros环境下运行orb-slam一直报错
  • ¥15 关于腾讯云服务器中,PHP页面无法打开的问题
  • ¥60 如何把照片修复成原始拍摄图
  • ¥80 Exited too quickly (process log may have details)
  • ¥15 爬知乎登录之后内容加载不出来
  • ¥15 怎么用protues测量通频带
  • ¥15 zepelin使用sparkInterpreter 异常
  • ¥15 paho mqtt 接收不到消息
  • ¥15 函数r关于两个分量y,z方向上的图像,分开画r随y的图像,r随z的图像