Flutter ScrollView动画:当孩子改变大小时,如何防止滚动动画?

时间:2019-04-19 18:50:23

标签: dart flutter

点击底部的子项时(点击时高度会发生变化),动画时会显示父级颜色(蓝色)。

反正有没有阻止动画的表演?

我应该以不同的方式思考这个问题吗?

Parent color shows on child size change

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Container(color: Colors.blue, child: CustomScrollView(slivers: <Widget>[
        SliverList(
          delegate: SliverChildListDelegate([
            TapBox(color: Colors.red),
            TapBox(color: Colors.white),
            TapBox(color: Colors.red),
          ]),
        )
      ],))
    );
  }
}

class TapBox extends StatefulWidget {
  final Color color;

  TapBox({ this.color });

  @override
  State<StatefulWidget> createState() => _TapBoxState();
}

class _TapBoxState extends State<TapBox> {
  double height = 500;

  onTap() {
    setState(() {
      if (height == 500) {
        height = 250;
      } else {
        height = 500;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Material(child: InkWell(onTap: onTap, child: LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) {
              return Container(width: constraints.maxWidth, height: height, color: widget.color);
            })));
  }

}

0 个答案:

没有答案