早上好,知更鸟 2023-03-29 15:28 采纳率: 80%
浏览 21
已结题

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 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?