我想更改容器上的颜色和大小,但它不会改变任何内容,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");
},
)
),
);
答案 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 。当您点击容器的主色更改为辅助色时。