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日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来