我不熟悉flutter,我想按setstate来改变我的窗口小部件边框颜色,但是我尝试使用setstate来改变它,但是它根本不会起作用,还有其他功能可以用来改变我的flutter中的窗口小部件颜色吗?如果可以的话,有人可以给我看一个例子,如何使用它。
showModalBottomSheet(backgroundColor:颜色(0xff086375),上下文:上下文,
isScrollControlled: true,
builder: (BuildContext context){
return Container(
padding: const EdgeInsets.symmetric(horizontal: 18),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
SizedBox(
height: 8.0,
),
Padding(
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom),
child: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"PHP ",
style:
TextStyle(color: Colors.white, fontSize: 20),
),
Container(
width: 40,
child: TextField(
cursorColor: Colors.white,
cursorWidth: 2,
keyboardType: TextInputType.number,
style: TextStyle(color: Colors.white),
decoration: InputDecoration.collapsed(
hintText: '0.00',
hintStyle: TextStyle(
color: Colors.white70, fontSize: 20)),
autofocus: true,
),
),
],
),
Container(
child: Text(
"PAYMENT FOR " + selectedExpense,
style: TextStyle(color: Colors.white70),
),
),
Container(
color: Color(0xff086375),
height: 40,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
child: IconButton(
icon: Icon(FontAwesomeIcons.utensils),
color: Colors.orange,
onPressed: () {
setState(() {
selectedExpense = "FOOD";
isFoodseleted = true;
isTransportationseletced = false;
isGroceriesselected = false;
isAccomodationselected = false;
isDrinksselected = false;
isOhterselected = false;
});
},
),
width: 50,
height: 40,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 5,
color: isFoodseleted
? Colors.white
: Color(0xff086375))),
),
),
Container(
child: IconButton(
icon: Icon(FontAwesomeIcons.bus),
color: Colors.yellow,
onPressed: () {
setState(() {
selectedExpense = "TRANSPORTATION";
isFoodseleted = false;
isTransportationseletced = true;
isGroceriesselected = false;
isAccomodationselected = false;
isDrinksselected = false;
isOhterselected = false;
});
},
),
width: 50,
height: 40,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 5,
color: isTransportationseletced
? Colors.white
: Color(0xff086375)))),
),
Container(
child: IconButton(
icon: Icon(FontAwesomeIcons.shoppingCart),
color: Colors.lightBlue,
onPressed: () {
setState(() {
selectedExpense = "GROCERIES";
isFoodseleted = false;
isTransportationseletced = false;
isGroceriesselected = true;
isAccomodationselected = false;
isDrinksselected = false;
isOhterselected = false;
});
},
),
width: 50,
height: 40,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 5,
color: isGroceriesselected
? Colors.white
: Color(0xff086375)))),
),
Container(
child: IconButton(
icon: Icon(FontAwesomeIcons.bed),
color: Colors.green,
onPressed: () {
setState(() {
selectedExpense = "ACCOMODATION";
isFoodseleted = false;
isTransportationseletced = false;
isGroceriesselected = false;
isAccomodationselected = true;
isDrinksselected = false;
isOhterselected = false;
});
},
),
width: 50,
height: 40,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 5,
color: isAccomodationselected
? Colors.white
: Color(0xff086375)))),
),
Container(
child: IconButton(
icon: Icon(FontAwesomeIcons.glassMartini),
color: Colors.red,
onPressed: () {
setState(() {
selectedExpense = "DRINKS";
isFoodseleted = false;
isTransportationseletced = false;
isGroceriesselected = false;
isAccomodationselected = false;
isDrinksselected = true;
isOhterselected = false;
});
},
),
width: 50,
height: 40,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 5,
color: isDrinksselected
? Colors.white
: Color(0xff086375)))),
),
Container(
child: IconButton(
icon: Icon(FontAwesomeIcons.plusCircle),
color: Colors.amber,
onPressed: () {
setState(() {
selectedExpense = "OTHERS";
isFoodseleted = false;
isTransportationseletced = false;
isGroceriesselected = false;
isAccomodationselected = false;
isDrinksselected = false;
isOhterselected = true;
});
},
),
width: 50,
height: 40,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: 5,
color: isOhterselected
? Colors.white
: Color(0xff086375)))),
)
],
),
)
],
),
),
SizedBox(height: 10),
],
),
);
}
)
颤动是我的新手,我希望按下时改变我的小部件边框颜色,但我尝试使用setstate尝试改变它,但是它根本不会起作用,还有其他功能可以使用,以便在颤动中更改我的小部件颜色?...
也许您可以将其应用于您的解决方案:
只需按照以下步骤更改所有IconButtonMethods,
这是您可以参考的示例: