码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 在Column中嵌入横向滚动的ListView


    在Column中嵌入横向滚动的ListView

    如果我们直接在column中嵌入一个横向滚动listView, 由于column的主轴是垂直的,和ListView的交叉轴的方向相同,这时候就会出现布局错误,这时候可以在ListView外出套上一个Container之类的组件限制其高度,例如

    child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
            const Text("begin"),
            Container(
                height: 40,
                child: ListView.builder(
                    itemBuilder: (_, index) {
                        return const Card(
                            child: Center(
                                child: Text("图片", style: TextStyle(fontSize: 16),
                                           )),
                        );
                    },
                    itemCount: 100,
                    scrollDirection: Axis.horizontal,
                ),
            ),
            const Text("end")
        ],
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    但是高度指定的话毕竟不利于拓展,我们希望能根据item自动计算出高度,借鉴到一个比较好的思路是利用Stack布局,它会自动根据除Positioned组件之外的组件的大小来计算出自身的大小,于是我们可以提供一个item作为原型给stack计算大小,将ListView放在Position中显示

    child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                const Text("begin"),
                Stack(
                  children: [
                  	// 充当原型的item不显示也不能响应点击事件
                    IgnorePointer( 
                      child: Opacity(
                        opacity: 0,
                        child: Card(
                          child: Text("图片", style: TextStyle(fontSize: 16),),
                        ),
                      ),
                    ),
                    // 横向宽度变大
                    SizedBox(width: double.infinity,),
                    Positioned.fill(
                      child: ListView.builder(
                        scrollDirection: Axis.horizontal,
                        itemBuilder: (_, index){
                          return Card(
                            child: Text("图片", style: TextStyle(fontSize: 16),),
                          );
                        },
                      ),
                    )
                  ],
                ),
                const Text("end")
              ],
            ),
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
  • 相关阅读:
    javascript算法排序之选择排序
    selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(2)
    【重磅+测评】Jetbrain发布Rust IDE,免费使用一年
    正大杯黑客马拉松数据解析竞赛
    pytorch初学笔记(十):神经网络基本结构之最大池化的使用
    2022年第二季度全球网络攻击创新高,如何有效防范网络攻击
    k8s敏感数据存储:Secret
    AndroidSDK下载及安装(Windows)
    一、Java 基础
    DHTMLX Gantt 8.0.5 Crack -甘特图
  • 原文地址:https://blog.csdn.net/qq_41818873/article/details/127820562
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号