40个flutter入门实例详解(五)_PJJ彭彭彭的博客-程序员秘密

技术标签: 培训  

21.流式布局

Wrap(
        spacing: 8.0, // 主轴(水平)方向间距
        runSpacing: 4.0, // 纵轴(垂直)方向间距
        alignment: WrapAlignment.center, //沿主轴方向居中
        children: <Widget>[
          new Chip(
            //avatar: new CircleAvatar(backgroundColor: Colors.blue, child: Text('A')),
            label: new Text('Hamilton'),
          ),
          new Chip(
            avatar: new CircleAvatar(backgroundColor: Colors.blue, child: Text('M')),
            //超出范围会折叠
            label: new Text('Lafayette'*100),
          ),
          new Chip(
            avatar: new CircleAvatar(backgroundColor: Colors.blue, child: Text('H')),
            label: new Text('Mulligan'),
          ),
          new Chip(
            avatar: new CircleAvatar(backgroundColor: Colors.blue, child: Text('J')),
            label: new Text('Laurens'),
          ),
        ],
      )

效果:

22.层叠布局的定位

 

Stack(
        alignment:Alignment.center , //指定未定位或部分定位widget的对齐方式
        children: <Widget>[
          //水平方向和垂直方向都没有定位,所以用Alignment.center的水平和垂直居中
          Container(child: Text("Hello world",style: TextStyle(color: Colors.white)),
            color: Colors.red,
          ),
          //定位了水平方向,垂直方向未定位,所以用Alignment.cente的垂直居中
          Positioned(
            left: 18.0,
            child: Text("I am Jack"),
          ),
          //定位了垂直方向,水平方向未定位,所以用Alignment.cente的水平居中
          Positioned(
            top: 18.0,
            child: Text("Your friend"),
          )        
        ],
      ),

效果:

23.层叠布局的堆叠效果

Stack(
        alignment:Alignment.center ,
        fit: StackFit.expand, //未定位widget占满Stack整个空间
        children: <Widget>[
          //已定位,只要定位了一个方向就是已定位
          Positioned(
            left: 18.0,
            child: Text("I am Jack"),
          ),
          //未定位,所以fit属性会对它起作用,就会占满Stack,第一个文本看不到了
          Container(child: Text("Hello world",style: TextStyle(color: Colors.white)),
            color: Colors.red,
          ),
          //Stack子元素是堆叠的,第三个文本已定位,会堆叠在第二个文本上
          Positioned(
            top: 18.0,
            child: Text("Your friend"),
          )
        ],
      ),

效果:

24.上下左右对齐

Container(
        height: 120.0,
        width: 120.0,
        color: Colors.blue[50],
        child: Align(
          //将FlutterLogo定位在Container的右上角
          alignment: Alignment.topRight,
          child: FlutterLogo(
            size: 60,
          ),
        ),
      )

效果:

25.通过坐标定位

Container(
        color: Colors.blue[50],
        child: Align(
          //宽度因子为2,总宽度为2*60
          widthFactor: 2,
          //高度因子为3,总高度为3*60
          heightFactor: 3,
          //(0,0)就是矩形的中心点,居于这个点,一个单位就移动一格
          alignment: Alignment(0,1.0),
          child: FlutterLogo(
            size: 60,
          ),
        )
      )

效果:

26.通过坐标定位

Container(
        color: Colors.blue[50],
        child: Align(
          //宽度因子为2,总宽度为2*60
          widthFactor: 2,
          //高度因子为3,总高度为3*60
          heightFactor: 3,
          //(0,0)就是矩形的左上角的顶点,居于这个点,一个单位就移动一格
          alignment: FractionalOffset(0,0),
          child: FlutterLogo(
            size: 60,
          ),
        )
      )

效果:

27.边框外的空白填充

class PaddingTestRoute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Padding(
      //上下左右各添加16像素补白
      padding: EdgeInsets.all(16.0),
      child: Column(
        //显式指定对齐方式为左对齐,排除对齐干扰
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Padding(
            //左边添加8像素补白
            padding: const EdgeInsets.only(left: 8.0),
            child: Text("Hello world"),
          ),
          Padding(
            //上下各添加8像素补白
            padding: const EdgeInsets.symmetric(vertical: 8.0),
            child: Text("I am Jack"),
          ),
          Padding(
            // 分别指定四个方向的补白
            padding: const EdgeInsets.fromLTRB(20.0,.0,20.0,20.0),
            child: Text("Your friend"),
          )
        ],
      ),
    );
  }
}

效果:

28.平移

//装饰容器
DecoratedBox(
        decoration:BoxDecoration(color: Colors.red),
        //默认原点为左上角,Text文本左移20像素,向上平移5像素  
        child: Transform.translate(
          offset: Offset(-20.0, -5.0),
          child: Text("Hello world"),
        ),
      )

效果:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37822034/article/details/106585588

智能推荐

iOS小技能:地址选择器(支持省份,省市,省市区,支持显示上一次选择的地址)_ios 城市选择器_iOS逆向的博客-程序员秘密

前言采用UIPickerView实现,核心方法czh_getData:构建数据模型,先从网络进行获取数据,如果获取失败,直接取本地的city.json选择省市区效果选择省市使用方法 [AddressPickerView areaPickerViewWithProvince:self.viewModel.AddressPickerModel.province city:self.viewModel.AddressPickerModel.city provinceId:

从源码编译安装CMake 3.17.1_stayreal1994的博客-程序员秘密

文章目录起因:为什么要从源码编译安装cmake?方法1. 从官网下载源码、解压2. 删除旧版CMake3. 编译结果起因:为什么要从源码编译安装cmake?笔者在编译gRPC相关项目时,gRPC官方要求cmake版本必需满足cmake&gt;=3.13,然而我使用apt能获取到的最新版本为3.11,此时cmake官网版本已经到了3.17.3。并且由于笔者是在树莓派上使用cmake,官网上编译...

1013_张松超的博客-程序员秘密

# include # include main(){ int a=2,n,b[100],sum=0; scanf("%d",&n); b[0]=a; for(int i=1;i<n;i++) { b[i]=b[i-1]+2*pow(10,i); sum=sum+b[i]; } printf("%d",sum+2);}

阿里洛神云网络这局妥了!集齐“软硬结合、创新NFV、智能管理”三张牌_QbitAl的博客-程序员秘密

晶少发自 凹非寺量子位 报道 | 公众号 QbitAI导语:在云网络风靡的今天,洛神云网络作为阿里云飞天的虚拟网络系统核心,目前在软硬一体、NFV平台创新以及智能性方面究竟有何新意?对...

随便推点

安装HI3201aSDK包里ko目录下的hifb.ko为什么会报错_~学海无涯~的博客-程序员秘密

/mnt # insmod hi3521a_ai.kohi3521a_ai: Unknown symbol VB_InquirePoolUserCnt (err 0)hi3521a_ai: Unknown symbol CMPI_UnRegisterModule (err 0)hi3521a_ai: Unknown symbol CMPI_MmzMallocNocache (err 0

Expected BEGIN_OBJECT but was STRING at line 4 column 1 path $ 错误积累_harold7i7的博客-程序员秘密

json传递的过程中移动端传递的是:{"addr":"山东省苍山县车辋镇念沂泉村113号","csrq":"1990年04月06日","fzdw":"苍山县公安局","ksjc":"newdata","mz":"汉","ptzjhm":"37132419900406403X","rlsbjg":"2","sid":"31eed7584018138b","xb":"男","xm":"李君君","

【Laravel】安装配置开发环境__小青年儿_的博客-程序员秘密

摘要Laravel的目标是给开发者创造一个愉快的开发过程,并且不牺牲应用的功能性。快乐的开发者才能创造最棒的代码!为了这个目的,开发者博取众框架之长处集中到Laravel中,这些框架甚至是基于Ruby on Rails、ASP.NET MVC、和Sinatra等开发语言或工具的。对Laravel初步认知刚从事PHP开发没多久,对PHP的一些框架了解甚少,在CSDN上看到一篇

软件设计六大内功心法_软件设计内功心法ppt_qnjian的博客-程序员秘密

  我一直以为,世间万事万物,都存在着某种规律性的东西,只不过,有的已经被发现,有的还在人们的探索过程中,等待被发现,软件设计亦然。其实,生活中的很多东西,是可以相通的(比如心和心)。  不是吗?那本很有名的书《建筑的永恒之道》,正是归纳出了长久以来,在人们漫长的经历中摸索出来的有关建筑的一些规律性的东西。然而,它却不仅止于建筑,它还可以延伸至其他诸多领域。我们可以发现,很多精彩的软件设计模式

解线性方程终极大法--LU分解_轩少⊙_⊙的博客-程序员秘密

mvvmmme矩阵p矩阵 用矩阵乘做消元换行矩阵乘求逆guass jorden求逆

(学习笔记)SQL Server 2005所支持的XQuery 方法_dcyang的博客-程序员秘密

query() :query(XQuery expression) 在XML文档或片断中选择数据,类似于SELECT语句。 value() :value(XQuery expression, SQL datatype) 合并query()方法与SQL中的CONVERT函数的功能。这个方法允许在XML文档或片断中选择一个值并将其转换成特定的数据类型。 exist() :exist(XQu

推荐文章

热门文章

相关标签