Flutter学习之重叠布局

  1. 两个元素的重叠布局
    可以使用stack组件

    import 'package:flutter/material.dart';

    void main(){ runApp(MyApp()); }

    class MyApp extends StatelessWidget{ @override var stack = new Stack( alignment: const FractionalOffset(0.5, 0.7), children: <Widget>[ new CircleAvatar( backgroundImage: new NetworkImage("https://avatars2.githubusercontent.com/u/41252899?s=460&v=4"), radius: 100.0, ), new Container( decoration: new BoxDecoration( color: Colors.pinkAccent, ), padding: EdgeInsets.all(5.0), child: new Text("ayang"), ) ], ); //使用变量创建重叠的组件,起到减轻代码量的效果 Widget build(BuildContext context){ return MaterialApp( title: "stack层叠布局",

    1 home: Scaffold( 2 appBar: new AppBar( 3 title: new Text("stack 层叠布局"), 4 backgroundColor: Colors.pink, 5 ), 6 7 body: Center( 8 child: stack 9 ), 10 ), 11);

    } }

之前的两个博客分别写了水平布局和纵向布局,这两种布局可以满足很多布局需求了,但是遇到一些组件的堆叠时,还是不能很好的完成任务。这个时候就需要重叠布局(stack),

在上述代码中我们学到了一个新的方法,就是var 一个变量,为这个变量创建一个组件(我估摸着这个组件可能只有在自己的类里才能被直接使用),在这个变量中我们使用了Stack这个重叠布局组件,在其children这个属性里
创建了一个CircleAvatar组件,对其中设置了backgroundImage属性NetworkImage(""),以及大小属性radius。
创建了一个Container组件,内设文字组件。

  1. 两个元素以上的布局
    在stack中使用Positioned多重重叠布局
    (个人感觉和在row中使用expanded进行布局有相同之处)

    import 'package:flutter/material.dart';

    void main(){ runApp(MyApp()); }

    class MyApp extends StatelessWidget{ @override var stack = new Stack( alignment: const FractionalOffset(0.5, 0.7), children: <Widget>[ new CircleAvatar( backgroundImage: new NetworkImage("https://avatars2.githubusercontent.com/u/41252899?s=460&v=4"), radius: 100.0, ), new Positioned( top: 10.0, left: 10.0, child: new Text("YFC"), ), new Positioned( bottom: 10.0, right: 10.0, child: new Text("https://ayang818.github.io/"), ) ], ); //使用变量创建重叠的组件,起到减轻代码量的效果 Widget build(BuildContext context){ return MaterialApp( title: "stack层叠布局",

    1 home: Scaffold( 2 appBar: new AppBar( 3 title: new Text("stack 层叠布局"), 4 backgroundColor: Colors.pink, 5 ), 6 7 body: Center( 8 child: stack 9 ), 10 ), 11);

    } }

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

【Flutter实战】层叠布局(Stack、Positioned)

4.5层叠布局Stack、Positioned层叠布局和Web中的绝对定位、Android中的Frame布局是相似的,子组件可以根据距父容器四个角的位置来确定自身的位置。绝对定位允许子组件堆叠起来(按照代码中声明的顺序)。Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位。Stack允许子组件堆叠,而Pos

Flutter学习之动态ListView

import'package:flutter/material.dart';voidmain(){runApp(listname(item:newList<String.generate(1000,(i)"genarate$i")));}

Flutter中日期组件DatePicker及组件汉化

Flutter提供了DatePicker组件进行时间选择。日期组件及时间组件代码示例:import'package:flutter/material.dart';//第三方插件,需要提前配置import'package:date_format/date_format.dart';classDat

Flutter Widget不刷新问题

import'package:flutter/material.dart';///温度显示okclassTemperatureIndicationextendsStatefulWidget{finalValueChanged<intvalueChanged;final

Flutter入门(四)

\TabBar(顶部导航)import'package:flutter/material.dart';classCategoryPageextendsStatefulWidget{CategoryPage({Keykey}):super(key:key);@o