zoukankan      html  css  js  c++  java
  • 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层叠布局",
    
          home: Scaffold(
            appBar: new AppBar(
              title: new Text("stack 层叠布局"),
              backgroundColor: Colors.pink,
            ),
    
            body: Center(
               child: stack
            ),
          ),
        );
      }
    }
    

    之前的两个博客分别写了水平布局和纵向布局,这两种布局可以满足很多布局需求了,但是遇到一些组件的堆叠时,还是不能很好的完成任务。这个时候就需要重叠布局(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层叠布局",
    
          home: Scaffold(
            appBar: new AppBar(
              title: new Text("stack 层叠布局"),
              backgroundColor: Colors.pink,
            ),
    
            body: Center(
               child: stack
            ),
          ),
        );
      }
    }
    
  • 相关阅读:
    mybatis(2)操作数据库
    《构建之法》阅读笔记02
    mybatis(4)使用注解方式配置sql语句
    mybatis(5)参数传递
    Android Studio安装
    《构建之法》阅读笔记01
    反射
    mybatis(3)利用Mapper接口实现数据的增删改查
    activity组件
    mybatis(1)
  • 原文地址:https://www.cnblogs.com/yfc0818/p/11072657.html
Copyright © 2011-2022 走看看