给设置宽高的Container包一个父组件(如Center)即可
参考文章-写了为什么会这样
原代码
class TapboxA extends StatefulWidget {TapboxA({Key? key}) : super(key: key);@override_TapboxAState createState() => _TapboxAState();
}class _TapboxAState extends State<TapboxA> {bool _active = false;void _handleTap() {setState(() {_active = !_active;});}Widget build(BuildContext context) {return GestureDetector(onTap: _handleTap,child: Container(child: Center(child: Text(_active ? 'Active' : 'Inactive',style: TextStyle(fontSize: 32.0, color: Colors.white),),),width: 200.0,height: 200.0,decoration: BoxDecoration(color: _active ? Colors.lightGreen[700] : Colors.grey[600],),),);}
}
修改后
class TapboxA extends StatefulWidget {TapboxA({Key? key}) : super(key: key);@override_TapboxAState createState() => _TapboxAState();
}class _TapboxAState extends State<TapboxA> {bool _active = false;void _handleTap() {setState(() {_active = !_active;});}Widget build(BuildContext context) {return GestureDetector(onTap: _handleTap,child: Center(child: Container(child: Center(child: Text(_active ? 'Active' : 'Inactive',style: TextStyle(fontSize: 32.0, color: Colors.white),),),width: 200.0,height: 200.0,decoration: BoxDecoration(color: _active ? Colors.lightGreen[700] : Colors.grey[600],),),),);}
}