我连续有5个按钮,我想为每个按钮分配一个值。另外,如果获胜,我想显示按钮的相同值,如果输掉,我想显示按钮的时间times(*)2。
如何为onPressed的每个按钮分配特定的值?
谢谢
int bab = 5;
int o = 0; // output
void Scorebab() {
setState(() {
o = o + bab;
});
}
5个不同按钮的示例
Container(
height: 80,
width: 80,
padding: EdgeInsets.all(3.0),
child: MaterialButton(
shape: CircleBorder(
side: BorderSide(
color: Colors.black,
width: 1.0,
style: BorderStyle.solid)),
color: selectedTalba == Talba.bab
? kActiveCardColor
: kInactiveCardColor,
onPressed: () {
Scorebab();
setState(() {
selectedTalba = Talba.bab;
});
},
child: Text(
'bab',
style: kLabelTextStyle,
),
),
),
分数输出
Expanded(
child: ReusableCard(
onPress: () {
setState(() {
selectedShary = Shary.Lihum;
});
},
color: kInactiveCardColor,
cardChild: CardChild(
label: '$o ',
),
),
),
胜负按钮
Expanded(
child: ReusableCard(
onPress: () {
setState(() {
selectedScore = Score.Lose;
});
},
color: selectedScore == Score.Lose
? kActiveCardColor
: kInactiveCardColor,
cardChild: CardChild(
label: 'lose',
),
),
),
Expanded(
child: ReusableCard(
onPress: () {
setState(() {
selectedScore = Score.Win;
});
},
color: selectedScore == Score.Win
? kActiveCardColor
: kInactiveCardColor,
cardChild: CardChild(label: 'win!'),
),
),
据我了解!
List<String> rootValues =['1','2','3','4','5'],
currentValues=[];
//change your data type above....
int activeButton = 3;
@override
void initState() {
super.initState();
currentValues = rootValues;
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Row(
mainAxisAlignment:MainAxisAlignment.spaceEvenly,
children:List.generate(currentValues.length,(ind)=>
FlatButton(
onPressed:(){
getWinOrLoss(ind);
},
shape:RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
color: activeButton == ind?
Colors.green:
Colors.orange[700],
child: Text(currentValues[ind],
style: TextStyle(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.bold,
)),
),
).toList(),
)));
}
getWinOrLoss(int a){
//Your code about win or loss
setState(()=>activeButton=a);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句