如何在Flutter中更新showmodalsheet中的小部件颜色?

问题描述 投票:0回答:3

我不熟悉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尝试改变它,但是它根本不会起作用,还有其他功能可以使用,以便在颤动中更改我的小部件颜色?...

android flutter flutter-layout flutter-test
3个回答
0
投票

也许您可以将其应用于您的解决方案:


0
投票

只需按照以下步骤更改所有IconButtonMethods,


0
投票

这是您可以参考的示例:

© www.soinside.com 2019 - 2024. All rights reserved.