如何在颤动中相同位置的两个不同小部件之间切换?

时间:2019-02-09 12:54:35

标签: dart flutter

我有一个卡片小部件,其中包含一些信息和一个按钮。按下按钮时,我想对卡片进行动画处理,以在同一位置更改为另一张卡片。动画将在以后添加。

根据我当前的代码,我正在使用布尔控件来控制显示哪个小部件。

我的卡1具有以下代码-

SliverFillRemaining(
      child: Padding(
        padding: const EdgeInsets.only(
            top: 10.0, left: 6.0, right: 6.0, bottom: 6.0),
        child: detailsCardIsVisible ? Card(
            elevation: 2.0,
            clipBehavior: Clip.antiAlias,
            shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.all(Radius.circular(8.0))),
            child: productInfoCard()) : ProductEnquiryWidget()
      ),
    )

ProductEnquiryWidget是第二张卡片。它具有带有按钮的表单。我想做的就是在按下按钮时提交表单,然后将其动画化回第一张卡片。

我该怎么做?我不想将第二张卡的代码与第一张卡放在同一文件中,因为这会使代码太大。

我正在使用名为 detailsCardIsVisible 的布尔值来控制显示哪个卡。有什么方法可以通过第二张卡上的按钮点击操作该变量?

1 个答案:

答案 0 :(得分:0)

https://docs.flutter.io/flutter/widgets/AnimatedCrossFade-class.html

AnimatedCrossFade(
  duration: const Duration(seconds: 3),
  firstChild: FirstChild(),
  secondChild: SecondChild(),
  crossFadeState: _first ? CrossFadeState.showFirst : CrossFadeState.showSecond,
)