根据颤动中按下的按钮显示卡片
Showing card depending on button pressed in flutter
我正在尝试实现一项功能,以便在我按下按钮时它会显示一张包含一些信息的卡片。我有 2 个按钮,根据我按下的按钮,它应该显示一张或另一张卡片。
我稍微简化了代码,不包括一些与此问题无关的参数。
class DogCardDetails extends StatelessWidget {
bool _visibleBehavior = true;
bool _visiblePhysical = true;
DogCardDetails({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
child: Column(
children: <Widget>[
Container(
margin: EdgeInsets.only(
right: 20,
left: 20,
),
child: Row(
children: [
ElevatedButton(
onPressed: () {
_visibleBehavior = false;
},
child: Text('Physical info'),
style: ButtonStyle(
shape:
MaterialStateProperty.all<RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(160.0),
side: BorderSide(color: Colors.white))))),
ElevatedButton(
onPressed: () {
_visibleBehavior = true;
},
child: Text('Behavior info'),
style: ButtonStyle(
shape:
MaterialStateProperty.all<RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(160.0),
side: BorderSide(color: Colors.white))))),,
_visibleBehavior == true
? BehaviorCard()
: PhysicalCardInfoDog()
],
),
),
);
}
}
您需要用 setState 包装您的函数才能重绘 ui,像这样
onPressed: () {
setState(() {
_visibleBehavior = true;
})
}
还要使用 setState 方法,您必须将 DogCardDetails StatelessWidget 重构为 StatefullWidget
我正在尝试实现一项功能,以便在我按下按钮时它会显示一张包含一些信息的卡片。我有 2 个按钮,根据我按下的按钮,它应该显示一张或另一张卡片。
我稍微简化了代码,不包括一些与此问题无关的参数。
class DogCardDetails extends StatelessWidget {
bool _visibleBehavior = true;
bool _visiblePhysical = true;
DogCardDetails({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
child: Column(
children: <Widget>[
Container(
margin: EdgeInsets.only(
right: 20,
left: 20,
),
child: Row(
children: [
ElevatedButton(
onPressed: () {
_visibleBehavior = false;
},
child: Text('Physical info'),
style: ButtonStyle(
shape:
MaterialStateProperty.all<RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(160.0),
side: BorderSide(color: Colors.white))))),
ElevatedButton(
onPressed: () {
_visibleBehavior = true;
},
child: Text('Behavior info'),
style: ButtonStyle(
shape:
MaterialStateProperty.all<RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(160.0),
side: BorderSide(color: Colors.white))))),,
_visibleBehavior == true
? BehaviorCard()
: PhysicalCardInfoDog()
],
),
),
);
}
}
您需要用 setState 包装您的函数才能重绘 ui,像这样
onPressed: () {
setState(() {
_visibleBehavior = true;
})
}
还要使用 setState 方法,您必须将 DogCardDetails StatelessWidget 重构为 StatefullWidget