按下按钮时的动画文本过渡

问题描述

我有 3 种引号。当按下相应的按钮时,如果引用从类别 1 到类别 2 再到类别 3,则引用会消失,反之亦然。

但是,即使它们来自同一类别,我也想让引用消失。现在,当引用来自不同类别时,它会消失。

这怎么可能?谢谢

我认为这与按钮有关。例如。当按下猫 1 的按钮时,猫 1 的引用的不透明度变为 0 并返回 1(持续时间为一秒)。 但我不知道怎么写。

下面附上此操作中涉及的主要代码块:


  double opacity1 = 0.0;
  double opacity2 = 0.0;
  double opacity3 = 0.0;

String quoteCat1 = List1[Random().nextInt(List1.length)];

  void generateConvoTopic1() {
    setState(() {
      quoteCat1 = List1[Random().nextInt(List1.length)];
    });
  }

  String quoteCat2 = List2[Random().nextInt(List2.length)];

  void generateConvoTopic2() {
    setState(() {
      convoTopic2 = List2[Random().nextInt(List2.length)];
    });
  }

  String quoteCat3 = List3[Random().nextInt(List3.length)];

  void generateConvoTopic3() {
    setState(() {
      quoteCat3 = List3[Random().nextInt(List3.length)];
    });
  }

 @override
  Widget build(BuildContext context) {
   
    return Scaffold(

...

body: ...

///Following are where the quotes are stacked. But they take  turns to show their opacity.

Stack(children: <Widget>[
              
                AnimatedOpacity(
                    opacity: opacity1,duration: Duration(seconds: 1),child:Text(quoteCat1),AnimatedOpacity(
                    opacity: opacity2,child: Text(quoteCat2),AnimatedOpacity(
                    opacity: opacity3,child: Text(quoteCat3),]),...

///Following are the buttons to trigger the respective quotes' opacity

ElevatedButton(

...
onpressed: () {
                      generatequoteCat1();
                      opacity1 = 1.0;
                      opacity2 = 0.0;
                      opacity3 = 0.0;
                    },),ElevatedButton(

...
onpressed: () {
                      generatequoteCat2();
                      opacity2 = 1.0;
                      opacity1 = 0.0;
                      opacity3 = 0.0;
                    },ElevatedButton(

...
onpressed: () {
                      generatequoteCat3();
                      opacity3 = 1.0;
                      opacity1 = 0.0;
                      opacity2 = 0.0;
                    },...


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)