FadeTransition () विजेट केवल स्पंदन में एक बार एनिमेटेड है?

वोट
0
class pin extends StatefulWidget {
@override
_PinState createState() => _PinState();
}

class _PinState extends State<pin> with TickerProviderStateMixin {
AnimationController _controller;
Animation<double> _animation;
bool error = false;


@override
void initState() {
  super.initState();
  this._controller = AnimationController(
      duration: const Duration(milliseconds: 1000), vsync: this);
  this._animation =
      Tween(begin: 0.0, end: 1.0).animate(CurvedAnimation(
    parent: _controller,
    curve: Curves.easeIn,
  ));
}

@override
Widget build(BuildContext context) {
  if(this.error) {
    this.error = false;
    _controller.forward();
  }
  return Container(
    child: if (this.error)
            Container(
            child: FadeTransition(
              opacity: _animation,
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Padding(
                    padding: const EdgeInsets.all(8.0),
                    child: Image.asset(assets/images/sad_face.png),
                  ),
                ],
              ),
            ),
          ),    
  ),
}
}

उपरोक्त कोड में FadeTransition()विजेट जब एप्लिकेशन पहले शुरू की है एनिमेटेड है। और उसकी दृश्यता FadeTransition()है द्वारा चालू किए जाने errorचर। लेकिन जब अगली बार जब FadeTransition()यह एनिमेटेड नहीं है विजेट दिखाई दे रहा है?

क्या याद आ रही है, जब टॉगल FadeTransition()विजेट हर बार प्रदर्शित होने एनिमेटेड किया जाना चाहिए!

02/12/2019 को 23:51
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

एक बात मैंने देखा है errorहमेशा गलत है। वहाँ यह सच करने के लिए बारी करने के लिए कोई कोड है और दो स्थानों पर जहां यह गलत पर सेट किया जाएगा देखते हैं। उनमें से एक है, तो यह सच है (यह कभी नहीं होगा क्योंकि पर निर्भर error = trueमौजूद नहीं है)

यही कारण है कि किया जा रहा है ने कहा, आप फिर से अपने एनीमेशन रन बनाने के लिए है, जहां कभी आप इस संपत्ति के लिए (आमतौर पर एक बटन के दशक में टॉगल कर रहे हैं चाहते हैं, तो onTapविधि) आप setState कॉल करनी होगी। SetState में आप या तो उपयोग कर सकते हैं

controller.forward(from: 0);
// or
controller.reset(); // stops the animation if in progress
controller.forward();
03/12/2019 को 01:01
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more