如何在Flutter窗口小部件中临时更改文本颜色(反过来)?

时间:2019-08-26 00:53:50

标签: flutter dart

我正在寻找一种解决方案,可将文本小部件中的文本颜色临时更改为红色,持续3秒钟。我目前可以将其设置为红色,但是如何在此持续时间内将其恢复为原来的状态?

1 个答案:

答案 0 :(得分:1)

喜欢这个...

import 'dart:async';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SO(),
    );
  }
}
class SO extends StatefulWidget {
  @override
  _SOState createState() => _SOState();
}

class _SOState extends State<SO> {
  static final orgColor = Colors.black;
  var currentColor  = orgColor;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(child: Text("this is colored",style: TextStyle(color: currentColor,fontSize: 40),)),
      floatingActionButton: FloatingActionButton(onPressed: () {
        setState(() {
          currentColor = Colors.red;
        });
        Timer(Duration(seconds: 3),(){
          setState(() {
            currentColor = orgColor;
          });
        });
      },),
    );
  }
}
import 'dart:async';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SO(),
    );
  }
}
class SO extends StatefulWidget {
  @override
  _SOState createState() => _SOState();
}

class _SOState extends State<SO> {
  static final orgColor = Colors.red;
  var currentColor  = orgColor;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(child: Text("this is colored",style: TextStyle(color: currentColor,fontSize: 40),)),
      floatingActionButton: FloatingActionButton(onPressed: () {
        setState(() {
          currentColor = Colors.blue;
        });
        Timer(Duration(seconds: 2),(){
          setState(() {
            currentColor = orgColor;
          });
        });
      },),
    );
  }
}

基本上将计时器设置为等待一段时间(此处为2秒),然后重置状态。