zoukankan      html  css  js  c++  java
  • warp 流式布局

    代码:

    import 'package:flutter/material.dart';

    class WarpDemo extends StatefulWidget {
    WarpDemo({Key key}) : super(key: key);

    @override
    _WarpDemoState createState() => _WarpDemoState();
    }

    class _WarpDemoState extends State<WarpDemo> {

    List<Widget> demoList;

    @override
    void initState() {

    super.initState();
    demoList = List<Widget>()..add(buildAddButton());//初始化
    }
    @override
    Widget build(BuildContext context) {
    final width = MediaQuery.of(context).size.width;//屏幕宽
    final height = MediaQuery.of(context).size.height;//屏幕高
    return Scaffold(
    appBar: AppBar(
    title: Text('流式布局'),
     
    ),
    body: Center(
    child: Opacity(opacity: 0.8,child:Container(
    width,
    height: height/2,
    color: Colors.grey,
    child: Wrap(
    children: demoList,
    spacing: 26.0,//间距
    ),
    ),),//透明
    ),
    );
    }


    Widget buildAddButton(){//也算是方法其实我更觉得是个全局变量 返回widget的方法
    return GestureDetector(//手势识别
    onTap: (){
    if (demoList.length < 9) {
    setState(() {//
    demoList.insert(demoList.length - 1, buildPhoto());//在demoList.length - 1 插入元素buildPhoto() //集合改变 在这里
    });
     
    }
    },
    child: Padding(
    padding: const EdgeInsets.all(10.0),
    child: Container(
    80.0,
    height: 80.0,
    color: Colors.greenAccent,
    child: Icon(Icons.add),
    ),
    ),
    );

     
    }

    Widget buildPhoto (){
    return Padding(
    padding: const EdgeInsets.all(10.0),
    child: Container(
    80.0,
    height: 80.0,
    color: Colors.orange,
    child: Center(
    child: Text('照片'),
    ),
    ),
    );
    }

    }
    总结:

    //wrap 流式布局

     

    Wrap(

    children:xx,//xx 数据集合

     

    )

     

    xx.inser(index,value)//xx 数据集合, index 在第index个位置 添加数据为value,这个和OC 不一样,flutter inser语法是先修改元素后扩充集合。

     

    padding(//????还不明白这个是不是类似于View 如果是 那和 Contain啥区别

     

     

    )

  • 相关阅读:
    【转载】[C#]Log4net中的RollingFileAppender解析
    【转载】大数据量传输时配置WCF的注意事项
    Sql 数据引擎中删除用户名、密码信息
    win10 HTTP 错误 500.21
    SQL Server 将Id相同的字段合并,并且以逗号隔开
    C#中2个日期类型相减
    sql server 查询本年的每个月的数据
    sql server 查询本周、本月所有天数的数据
    sql server中的日期函数
    Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
  • 原文地址:https://www.cnblogs.com/pp-pping/p/12188717.html
Copyright © 2011-2022 走看看