颤振:在点击时更改容器的颜色

时间:2020-08-11 07:00:54

标签: flutter dart

我想更改容器上的颜色和大小,但它不会改变任何内容,setState(()也无济于事

return Scaffold(
  body: Ink(          
      child: InkWell(
        child: Container(
          width: double.infinity,
          height:double.infinity,
          color:Colors.blue,            
        ),
        onTap: () {
          height:400;
          color: Colors.red;
          print("Click event on Container");
        },
     )
  ),

);

3 个答案:

答案 0 :(得分:3)

fel本示例说明了如何切换蓝色和红色。

Color _colorContainer = Colors.blue;

现在,您可以按以下方式在小部件中使用它:

         Ink(
            child: InkWell(
            child: Container(
            width: 200,
            height: 200,
            color: _colorContainer ,
          ),
          onTap: () {
            setState(() {
              _colorContainer = _colorContainer == Colors.red ? 
                    Colors.blue : 
                    Colors.red;
            });
          },
        )),

答案 1 :(得分:0)

使用变量:

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  double _containerHeight = double.infinity;
  Color _containerColor = Colors.blue;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Ink(
          child: InkWell(
        child: Container(
          width: double.infinity,
          height: _containerHeight,
          color: _containerColor,
        ),
        onTap: () {
          setState(() {
            _containerHeight = 400;
            _containerColor = Colors.red;
          });
        },
      )),
    );
  }
}

答案 2 :(得分:0)

您可以使用 TwinAnimation 。当您点击容器的主色更改为辅助色时。