Flutter MergeableMaterialItem-阿里云开发者社区

开发者社区> 云原生> 正文
登录阅读全文

Flutter MergeableMaterialItem

简介: 简介 MaterialSlice 和 MaterialGap的基本类型 所有的MergeableMaterialItem对象都需要LocalKey 基础用法 MaterialSlice进行演示 MaterialSlice做为 MergeableMaterial子类。

简介

MaterialSlice 和 MaterialGap的基本类型

  • 所有的MergeableMaterialItem对象都需要LocalKey

基础用法

MaterialSlice进行演示

  • MaterialSlice做为 MergeableMaterial子类。它作为Material,可以和其他的slices合并使用

实例演示


import 'package:flutter/material.dart';

class MergeableMaterialItemDemo extends StatefulWidget {
  _MergeableMaterialItemState createState() => _MergeableMaterialItemState();
}

class _MergeableMaterialItemState extends State<MergeableMaterialItemDemo> {
  final List<MergeableMaterialItem> items = <MergeableMaterialItem>[];
  bool currIndex = false;
  int currIndexNum = 1;

  _isChildExpanded() {
    setState(() {
      currIndex ? currIndex = false : currIndex = true;
      currIndexNum++;
    });
  }

  @override
  Widget build(BuildContext context) {
    items.add(

        //class MaterialSlice extends MergeableMaterialItem
         MaterialSlice(
            key:  ValueKey<int>(currIndexNum),
            child:  Column(children: <Widget>[
              // header,
               AnimatedCrossFade(
                firstChild:  Container(
                  height: 20.0,
                  width: 20.0,
                  color: Colors.green,
                ),
                secondChild:  Container(
                  height: 20.0,
                  width: 20.0,
                  color: Colors.red,
                ),
                crossFadeState: currIndex
                    ? CrossFadeState.showSecond
                    : CrossFadeState.showFirst,
                firstCurve:
                    const Interval(0.0, 0.6, curve: Curves.fastOutSlowIn),
                secondCurve:
                    const Interval(0.4, 1.0, curve: Curves.fastOutSlowIn),
                sizeCurve: Curves.fastOutSlowIn,
                duration: Duration(microseconds: 6),
              )
            ])));

    return Column(
      children: <Widget>[
         MergeableMaterial(hasDividers: true, children: items),
         RaisedButton(
          child: Text("点击添加"),
          onPressed: () {
            _isChildExpanded();
          },
        )
      ],
    );
  }
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云原生
使用钉钉扫一扫加入圈子
+ 订阅

云原生时代,是开发者最好的时代

其他文章