如何在Flutter中为下拉标签和下拉列表文本使用不同的颜色?

问题描述 投票:2回答:1

我正在尝试使用下拉列表,并且希望将Colors.white用于所选文本,并将Colors.black54用于下拉列表文本。但是,当我尝试使用color属性并将其更改为White时,它也会更改下拉文本的颜色。

DropdownButton<String>(
                    //this changed the color of both text, intial text as well dropdown text color
                    dropdownColor: Colors.white,
                    value: value,
                    style: TextStyle(color: Colors.white),
                    icon: CircleAvatar(
                      radius: 12,
                      backgroundColor: Colors.white,
                      child: Icon(Icons.arrow_drop_down),
                    ),
                    items: places.map((String value) {
                      return new DropdownMenuItem<String>(
                        value: value,
                        child: new Text(
                          value,
                         //I tried giving text style here , but same result 
                          style: TextStyle(color: Colors.white),
                        ),
                      );
                    }).toList(),
                    onChanged: (_) {
                      setState(() {
                        value = _;
                      });
                    },
                  )

这里是图片。

enter image description hereenter image description here

flutter flutter-layout
1个回答
1
投票

好,我使用selectedItemBuilderdropdown属性找到了解决方案>

 final List<String> places = ['Delhi', 'Mumbai', 'Kerela', 'Agra'];

 DropdownButton<String>(
                    selectedItemBuilder: (_) {
                      return places
                          .map((e) => Container(
                                alignment: Alignment.center,
                                child: Text(
                                  e,
                                  style: TextStyle(color: Colors.white),
                                ),
                              ))
                          .toList();
                    },
                    value: value,
                    icon: CircleAvatar(
                      radius: 12,
                      backgroundColor: Colors.white,
                      child: Icon(Icons.arrow_drop_down),
                    ),
                    items: places.map((String value) {
                      return new DropdownMenuItem<String>(
                        value: value,
                        child: new Text(
                          value,
                          style: TextStyle(color: Colors.black54),
                        ),
                      );
                    }).toList(),
                    onChanged: (_) {
                      setState(() {
                        value = _;
                      });
                    },
                  )

这里是结果

enter image description hereenter image description here

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