flutter的布局方法

Flutter一切皆组件widget。
使用Scaffold是最容易的,它是 Material Components库中的一个widget,它提供了一个默认banner,背景颜色,并且具有添加drawer,snack bar和底部sheet的API。

Row /column垂直和水平放置多个widget

  • 行和列都需要一个子widget列表。
  • 子widget本身可以是行、列或其他复杂widget。
  • 您可以指定行或列如何在垂直或水平方向上对齐其子项
  • 您可以拉伸或限制特定的子widget.
  • 您可以指定子widget如何使用行或列的可用空间.

Contents

  • 对齐 widgets
  • 调整 widgets
  • 聚集 widgets
  • 嵌套行和列

要在Flutter中创建行或列,可以将一个widget列表添加到Row 或Column 中。 同时,每个孩子本身可以是一个Row或一个Column,依此类推。

对齐 widgets

您可以控制行或列如何使用mainAxisAlignmentcrossAxisAlignment属性来对齐其子项。

调整 widget

也许你想要一个widget占据其兄弟widget两倍的空间。您可以将行或列的子项放置在Expandedwidget中, 以控制沿着主轴方向的widget大小。Expanded widget具有一个flex属性,它是一个整数,用于确定widget的弹性系数,默认弹性系数是1。

聚集 widgets

默认情况下,行或列沿着其主轴会尽可能占用尽可能多的空间,但如果要将孩子紧密聚集在一起,可以将mainAxisSize设置为MainAxisSize.min。

常用布局widgets

以下widget分为两类:widgets library中的标准widget和Material Components library中的专用widget 。 任何应用程序都可以使用widgets library中的widget,但只有Material应用程序可以使用Material Components库。

标准 widgets

  • Container添加 padding, margins, borders, background color, 或将其他装饰添加到widget.可让您创建矩形视觉元素。container 可以装饰为一个BoxDecoration, 如 background、一个边框、或者一个阴影。 Container 也可以具有边距(margins)、填充(padding)和应用于其大小的约束(constraints)。另外, Container可以使用矩阵在三维空间中对其进行变换。
  • GridView将 widgets 排列为可滚动的网格.
  • ListView将widget排列为可滚动列表
  • Stack将widget重叠在另一个widget之上.

Material Components

  • Card将相关内容放到带圆角和投影的盒子中。
  • ListTile将最多3行文字,以及可选的行前和和行尾的图标排成一行
  • Container 概要 :
  • 添加padding, margins, borders
  • 改变背景颜色或图片
  • 包含单个子widget,但该子widget可以是Row,Column,甚至是widget树的根
  • 使用GridView用途:
  • 在网格中放置widget
  • 检测列内容超过渲染框时自动提供滚动
  • 自定义grid,或使用一下提供的grid之一:GridView.count指定列数 GridView.extent指定项的最大像素宽度
  • 在显示二维列表时,重要的是单元格占用哪一行和哪一列时, 应该使用Table或 DataTable。
  • ListView 摘要:
  • 用于组织盒子中列表的特殊Column
  • 可以水平或垂直放置
  • 检测它的内容超过显示框时提供滚动
  • 比Column配置少,但更易于使用并支持滚动
  • Stack来组织需要重叠的widget。同absolute
  • 用于与另一个widget重叠的widget,
  • Stack允许子 widget 堆叠,可以使用 Positioned 来定位他们相对于Stack的上下左右四条边的位置。
  • 子列表中的第一个widget是base widget; 随后的子widget被覆盖在基础widget的顶部
  • Stack的内容不能滚动
  • 您可以选择剪切超过渲染框的子项
  • Card 是Material Components 库里的widget
  • Card有一个子项, 但它可以是支持多个子项的列,行,列表,网格或其他小部件。默认情况下,Card将其大小缩小为0像素。您可以使用SizedBox来限制Card的大小。
  • 接受单个子项,但该子项可以是Row,Column或其他包含子级列表的widget
  • 显示圆角和阴影
  • Card内容不能滚动
  • ListTile是Material Components库中的一个专门的行级widget,用于创建包含最多3行文本和可选的行前和行尾图标的行。ListTile在Card或ListView中最常用.是Material Components 库里的widget

flutter listview 滚动到指定位置_flutter入门相关推荐

  1. flutter listview 滚动到指定位置_Flutter 布局原理及实战

    1. Flutter UI架构 Flutter将视图数据抽象成为三个部分,即Widget树.Element树和RenderObject树. Widget树:控件的配置信息,不涉及渲染,更新代价极低. ...

  2. Flutter ListView滚动到指定条目

    找遍全网没有看到listview滚动到指定条目的方法,基本都是通过条目的高度计算达到效果.这样比较麻烦.通过研究发现一种简单的方法,但是不能使用listview组件,需要使用SingleChildSc ...

  3. vue 点击div 获取位置_vue 点击元素滚动到指定位置

    {{item}} {{item}} data() {return{ navgator: ['列表A','列表B','列表C','列表D', ], navgatorIndex:0, listBox: [ ...

  4. 用startSmoothScroll实现RecyclerView滚动到指定位置并置顶,含有动画。

    RecyclerView滚动到指定位置并置顶 RecyclerView本身提供了几个定位的方法,除了手动滑动的scrollTo,smootScrollTo和scrollBy,smoothScrollB ...

  5. 监听某个区域滚动_监听页面滚动及滚动到指定位置

    一.原生js通过window.onscroll监听 window.onscroll = function() { //为了保证兼容性,这里取两个值,哪个有值取哪一个 //scrollTop就是触发滚轮 ...

  6. ios开发之--令UITableView滚动到指定位置

    这个应用场景还是挺多的,代码如下: //获取到需要跳转位置的行数 NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:10 inSe ...

  7. 【小程序】滚动到指定位置

    点击按钮滚动到页面内的指定位置. wxml <view class="btn" catchtap="scrollToElement">去报名< ...

  8. vue 网页滚动到指定位置显示动画效果

    大部分的网页,在滚动到一定位置的时候,当前区块的文案或者图片有一些飞入,淡入淡出,向上划入的动画效果 //向上划入样式 .boxUp {transform: translateY(0%) !impor ...

  9. RecyclerView滚动到指定位置

    滚动到指定位置 recyclerView.scrollToPosition(position); 平滑滚动到指定位置 recyclerView.smoothScrollToPosition(posit ...

最新文章

  1. 菜鸟学exchange之一:exchange邮件系统的简单安装和部署
  2. 【攻防世界016】re2-cpp-is-awesome
  3. 3、使用Statement接口实现增,删,改操作
  4. BZOJ 2959: 长跑 [lct 双连通分量 并查集]
  5. 政府项目需要注意的事项
  6. Python-深拷贝-浅拷贝-时间消耗
  7. 2021HDU多校6 - 7029 Median(思维)
  8. hadoop没有datanode_Hadoop运行在Kubernetes平台实践
  9. php腾讯云+视频上传失败,腾讯云视频上传和播放尝试总结
  10. 如何查看电脑CPU实时功耗
  11. elementui组件_elementui 中 loading 组件源码解析(续)
  12. 算法学习(二)快速排序(上)
  13. asp.net MVC使用 jsQR 扫描二维码
  14. 《数字图像处理 第三版》(冈萨雷斯)——第十一章 表示和描述
  15. matlab 平滑曲线连接_用MATLAB做数据拟合究竟有多直观
  16. 2022-2027年中国环保领域集团级sis系统行业市场调研及未来发展趋势预测报告
  17. 潇潇六月雨 input file里的JQ change() 事件的只生效一次
  18. php iis 上传文件大小限制,IIS上传和下载文件大小限制
  19. SDRAM的工作原理
  20. 数据探索简介——质量分析、特征分析

热门文章

  1. linux 守护进程管理 supervisor 简介 可用于docker容器内守护进程
  2. elasticsearch(es)分布式全文检索引擎 简介
  3. linux od命令详解
  4. python 链表推导式 xx for xx in yy
  5. PCRE函数简介和使用示例
  6. 去掉VS2012中的红色波浪下划线
  7. Java 线程同步 synchronized
  8. 硬盘接口的类型介绍和比较
  9. error: Upgrade DB using Essex release first.
  10. 条件变量为什么要和互斥锁一起用