flutter 流式布局wrap实现类似点击添加照片的功能

setState(){
	可以直接写操作,而不一定全是赋值
}

代码示例:

import 'package:flutter/gestures.dart';
import "package:flutter/material.dart";
import 'package:flutter/rendering.dart';
import "drag.dart";
import 'dart:ui';

import 'page/1.dart';
import 'page/2.dart';
import 'page/3.dart';
import 'xuan.dart';

void main()
{
  runApp(App());
}
class App extends StatelessWidget {
  const App({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return App2();
  }
}

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

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

class _AppState extends State<App2> with SingleTickerProviderStateMixin {

  // List _page=[Home3(),Home2(),Home4()];
  // int index=0;
  TabController con;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    con=new TabController(length: 3, vsync: this);
  }

  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    con.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return  MaterialApp(
      home:Scaffold(
        appBar:AppBar(
          title: Text('小案例'),
        ),
        
        body:Home(),
        // floatingActionButton: FloatingActionButton(
        //   onPressed: (){},
        //   tooltip: 'js',
        //   child: Icon(
        //     Icons.add,
        //     color: Colors.white,
        //   ),
        // ),
        // floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
        // //导航栏
        // bottomNavigationBar:BottomAppBar(
        //   color: Colors.lightBlue,
        //   //有缺口的圆形矩阵,用来放置浮动按钮
        //   shape: CircularNotchedRectangle(),
        //   child: Row(
        //     mainAxisAlignment:MainAxisAlignment.spaceEvenly,
        //     children: <Widget>[
        //       IconButton(
        //         icon:Icon(Icons.home),
        //         color: Colors.white,
        //         onPressed: (){},
        //       ),
        //       IconButton(
        //         icon:Icon(Icons.category),
        //         color: Colors.white,
        //         onPressed: (){},
        //       ),
        //   ],),
        // )
      ),
      // routes: {
      //   '/test':(context)=>Home4()
      // },
      
      //去掉右上角的debug贴纸
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue
      ),
      );
  }
}


class Home extends StatefulWidget {

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

class _HomeState extends State<Home> {
  

  List<Widget> list;
 void initState()
 {
   list=[GestureDetector(
             onTap: (){
               setState(() {
                 list.insert(list.length-1, Container(margin:EdgeInsets.all(10),height: 100,width: 100,color: Colors.red,));    
               });
             
             },
             child: Container(
               height: 100,
               width: 100,
               color: Colors.yellow,
             ),
    )];
 }

  @override
  Widget build(BuildContext context) {
    return Container(
      // width: double.infinity,
       child:Wrap(
         children:list,
       )
       
    );
  }
}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值