Flutter的布局方法

2023-11-14

1、在flutter中Container类似于html中的div或者android中的layout布局,是作为一个控件的容器存在的,如填充、背景色、边框、边距等属性只有Container或者Container的子widget才用。

     在Container中添加Row或者Column可以以行或者列的方式处理布局方式。

2、使用Expanded来包围widget配合flex属性可以实现控件按照权重布

3、布局方式Row和Column的对其方式使用mainAxisAlignmentcrossAxisAlignment,分别代表主轴方向上的对齐方式和与主轴垂直的方向上的对齐方式。

4、 mainAxisSize使得容器widget中的字控件聚集在一起,而不会散开布局

5、边距和边框

 

          new Container(

                  //边框

                  decoration: new BoxDecoration(

                    border: new Border.all(width: 10.0, color: Colors.black38),

                    borderRadius:

                        const BorderRadius.all(const Radius.circular(8.0)),

                  ),

                                 //边距

                  margin: const EdgeInsets.all(4.0),

                  child: new Image.asset('images/pic1.jpg'),

                ),

 

6、GridView

   渲染网格数据的方式

// The images are saved with names pic1.jpg, pic2.jpg...pic30.jpg.

// The List.generate constructor allows an easy way to create

// a list when objects have a predictable naming pattern.

 

List<Container> _buildGridTileList(int count) {

 

  return new List<Container>.generate(

      count,

      (int index) =>

          new Container(child: new Image.asset('images/pic${index+1}.jpg')));}

 

Widget buildGrid() {

  return new GridView.extent(

      maxCrossAxisExtent: 150.0,

      padding: const EdgeInsets.all(4.0),

      mainAxisSpacing: 4.0,

      crossAxisSpacing: 4.0,

      children: _buildGridTileList(30));}

 

class _MyHomePageState extends State<MyHomePage> {

  @override

  Widget build(BuildContext context) {

    return new Scaffold(

      appBar: new AppBar(

        title: new Text(widget.title),

      ),

      body: new Center(

        child: buildGrid(),

      ),

    );

  }}

7、listView

渲染列表数据时使用

使用方法:

List<Widget> list = <Widget>[

  new ListTile(

    title: new Text('CineArts at the Empire',

        style: new TextStyle(fontWeight: FontWeight.w500, fontSize: 20.0)),

    subtitle: new Text('85 W Portal Ave'),

    leading: new Icon(

      Icons.theaters,

      color: Colors.blue[500],

    ),

  ),

  new ListTile(

    title: new Text('The Castro Theater',

        style: new TextStyle(fontWeight: FontWeight.w500, fontSize: 20.0)),

    subtitle: new Text('429 Castro St'),

    leading: new Icon(

      Icons.theaters,

      color: Colors.blue[500],

    ),

  ),

  // ...

  // See the rest of the column defined on GitHub:

  // https://raw.githubusercontent.com/flutter/website/master/_includes/code/layout/listview/main.dart];

 

class _MyHomePageState extends State<MyHomePage> {

  @override

  Widget build(BuildContext context) {

    return new Scaffold(

      // ...

      body: new Center(

        child: new ListView(

          children: list,

        ),

      ),

    );

  }}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter的布局方法 的相关文章

随机推荐

  • JDK8 下载与安装教程,超简单版(Windows)

    大家好 我是大鹅 最近换了新电脑 要安装开发环境 趁这个机会出一个安装教程 希望可以帮助到有需要的人 下载JDK安装包 在个人的电脑上 我是比较喜欢使用zulu的JDK 不论是版本还是功能都非常齐全 各个系统都有对应版本 基于OpenJDK
  • 用Python制作日历简答代码

    代码如下 import calendar 输入指定的年月 yy int input 输入年份 mm int input 输入月份 显示月日历 print calendar month yy mm 显示年日历 print calendar p
  • 体验最近火爆的ChatGPT,真的被震惊到了

    前言 前几天OpenAI公布了ChatGPT算是火爆朋友圈 这个模型以对话方式进行交互 能够回答人们提出的问题 承认错误并拒绝一些不适当的请求 GIS宇宙也是看到了各种文章写着什么谷歌要亡 百度要亡 取代StackOverflow的话语 抱
  • LeetCode【567】 字符串的排列

    这里写自定义目录标题 LeetCode567 字符串的排列 LeetCode567 字符串的排列 题目描述 给定两个字符串 s1 和 s2 写一个函数来判断 s2 是否包含 s1 的排列 换句话说 第一个字符串的排列之一是第二个字符串的子串
  • PROFIBUS DP从站开发 VPC3源程序分析---vpc3_cfg_data_update(void)

    以下程序注释由成都地质学院霸王猫添加 引用时请尊重作者劳动成果 标明引用者来自成都地质学院霸王猫 UBYTE vpc3 cfg data update void 入口参数 无 出口参数 无 返回值 VPC3 CFG FINISHED VPC
  • 可以悬浮在屏幕的搜题软件_给大家总结几款好用的搜题软件

    在学习中 难免会碰到不会做的题 一时想不开解题方法 这就需要搜题软件的帮助了 另外现在很多单位突击考试 让人来不得及准备 如果有好用的搜题软件 那么也能帮自己顺利通过考试 身心愉悦 搜题软件汇总 一 优题宝 优题宝是一款除k12考试之外 其
  • 如何查出同一张表中字段值重复的记录

    比如现在有一人员表 表名 peosons 若想将姓名 身份证号 住址这三个字段完全相同的记录查询出来 select p1 from persons p1 persons p2 where p1 idp2 id and p1 cardid p
  • RFID仓库管理解决方案-RFID智能仓储-RFID智能仓储-新导智能

    通过RFID技术可以实现科学有效的仓库库位管理 例如RFID出入库 RFID智能仓库等 实现仓库管理的信息化和时效化 在现代物流体系中 仓储往往起着平衡 调节 缓冲的作用 同时也是物流的中心环节 在现代化仓库的设计理念中 进出仓的效率将直接
  • 【Java项目实战】瑞吉外卖-06 套餐管理业务开发(包含修改套餐和单个/批量停售和启售方法)

    套餐管理业务开发 一 新增套餐 需求分析 套餐就是菜品的集合 后台系统中可以管理套餐信息 通过新增套餐功能来添加一个新的套餐 在添加套餐时需要选择当前套餐所属的套餐分类和包含的菜品 并且需要上传套餐对应的图片 在移动端会按照套餐分类来展示对
  • Vulkan同步机制和图形-计算-图形转换的风险(二)

    利用乒乓机制的交错队列减少风险 在本篇文章中 我们将提到Vulkan 图形处理过程中夹杂计算任务时遇到的各式问题 为更准确地了解我们的话题 可查看文章第一部分 第一部分概述了在Vulkan中如何使用barrier 具体来说 涉及图形 计算b
  • docker run后接多个COMMAND命令

    docker run后接多个COMMAND命令 格式 sh c run sh bin bash 例子 docker run dit name test sshd dockerfile sh c run sh bin bash 这样run起来
  • Advanced Level 1006 Sign In and Sign Out (25 point(s))

    题目 At the beginning of every day the first person who signs in the computer room will unlock the door and the last one w
  • python快捷运算:对数组进行条件判断

    经常需要对二维数据进行条件判断并计数 为了避免按索引进行比较的低效率 python提供了功能强大的数组逻辑运算 下面是一个简单的例子 可以根据实际情况进行扩展 usr bin env python import numpy as np fr
  • Halcon识别旋转的一维码

    原图 识别结果 代码 Orientation with reading direction of a bar code read image Image barcode ean13 ean1305 get image size Image
  • Qt: QWidget、QMainWindow、QDialog和QFrame的区别

    继承关系 在Qt中所有的类都有一个共同的基类QObject QWidget直接继承与QPaintDevice类 QDialog QMainWindow QFrame直接继承QWidget 类 QWidget QWidget类是所有用户界面对
  • Servlet,过滤器和监听器的配置和使用

    一 什么是Servlet Servlet使用Java语言实现的程序 运行于支持Java语言的Web服务器或者应用服务器中 Servlet先于JSP出现 提供和客户端动态交互的功能 Servlet可以处理来自客户端的HTTP请求 并生成响应返
  • orcad capture修改元件库后如何更新原理图

    1 上图中Design Cache里面放的是原理图中所有的元器件 测试点 电源端口等 Libray顾名思义放的就是元件库了 2 有时更改了元件库的属性 但是原理图里面不会直接更新过来的 需要自己更新 3 首先在Libray中选择想要修改的元
  • LeetCode(Python)—— 罗马数字转整数(简单)

    罗马数字转整数 概述 罗马数字包含以下七种字符 I V X L C D 和 M 给定一个罗马数字 将其转换成整数 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如 罗马数字 2 写做 II 即为两个
  • An Introduction for IMU 2 - IMU数据融合与姿态解算

    在上一篇博客中 我们已经介绍了IMU的内部工作原理 以及如何通过Arduino读取MPU6050的数据 虽然可以从DMP直接读取姿态角 但其数据返回的频率相对较低 同时由于DMP库不是开源的 其内部的工作原理 输出姿态角的准确性都不清楚 而
  • Flutter的布局方法

    1 在flutter中Container类似于html中的div或者android中的layout布局 是作为一个控件的容器存在的 如填充 背景色 边框 边距等属性只有Container或者Container的子widget才用 在Cont