zoukankan      html  css  js  c++  java
  • Flutter——Stack组件(层叠组件)、Align组件、Positioned组件

    Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局。
    • Stack组件

    常用于两个子元素。

    Stack组件的常用属性:
    属性 说明
    alignment 配置所有子元素的显示位置
    children 子组件
    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        title: "StackWidget",
        home: MyApp(),
      ));
    }
    
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Stack(
            alignment: Alignment.bottomRight,
            children: <Widget>[
              Container(
                 400,
                height: 500,
                color: Colors.redAccent,
              ),
              Icon(Icons.account_box,size: 40,color: Colors.white)
            ],
          ),
        );
      }
    }

    • Stack组件 结合 Align组件

    常用于多个元素。

    Align 组件可以独立控制每个子元素的显示位置。

     Align组件常用的属性:

    属性 说明
    alignment 配置所有子元素的显示位置
    child 子组件

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        title: "StackWidget",
        home: MyApp(),
      ));
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Container(
             400,
            height: 500,
            color: Colors.redAccent,
            child: Stack(
              children: <Widget>[
                Align(
                  child: Icon(Icons.account_box, size: 40, color: Colors.white),
                  alignment: Alignment.topLeft,
                ),
                Align(
                  child: Icon(Icons.palette, size: 40, color: Colors.white),
                  alignment: Alignment.center,
                ),
                Align(
                  child: Icon(Icons.shopping_cart, size: 40, color: Colors.white),
                  alignment: Alignment.bottomRight,
                )
              ],
            ),
          ),
        );
      }
    }

    • Stack组件 结合 Positioned组件

    常用于多个元素。

    Positioned 组件可以独立控制每个子元素的显示位置。

    Positioned组件的常用属性:

    属性 说明
    top
    子元素距离顶部的距离
    bottom
    子元素距离底部的距离
    left
    子元素距离左侧距离
    right
    子元素距离右侧距离
    child
    子组件

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        title: "StackWidget",
        home: MyApp(),
      ));
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Container(
             400,
            height: 500,
            color: Colors.redAccent,
            child: Stack(
              children: <Widget>[
                Positioned(
                  child: Icon(Icons.account_box, size: 40, color: Colors.white),
                  top: 10,
                ),
                Positioned(
                  child: Icon(Icons.palette, size: 40, color: Colors.white),
                  right: 20,
                ),
                Positioned(
                  child: Icon(Icons.shopping_cart, size: 40, color: Colors.white),
                  left: 30,
                  bottom: 0,
                )
              ],
            ),
          ),
        );
      }
    }
  • 相关阅读:
    删除 Visual studio 生成后的临时文件
    C# 中的委托和事件(转)
    C#复制DataRow出现“该行已经属于此表”错误的解决办法(转)
    ini配置文件读取类
    c# wpf窗体前端显示问题
    注册系统热键类(原创)
    C# 窗体最小化的托盘/系统通知区域(转)
    php explode()返回值
    $_SERVER['SCRIPT_NAME']
    svn合并初次使用心得
  • 原文地址:https://www.cnblogs.com/chichung/p/11993809.html
Copyright © 2011-2022 走看看