Flutter 颤振如何更改dropdownlist项目颜色

Flutter 颤振如何更改dropdownlist项目颜色,flutter,drop-down-menu,Flutter,Drop Down Menu,我想把颜色的值​​在小时列表中,显示黄色,并显示所选列表中的数据。下面是下拉列表和屏幕截图的代码。我该怎么做呢 导入“包装:颤振/材料.省道”; 类deneme扩展了StatefulWidget{ @凌驾 _denemeState createState()=>\u denemeState(); } 类_denemeState扩展状态{ 列表时间=[“09:00”,“10:00”,“11:00”,“12:00”,“13:00”,“14:00”,“15:00”,“16:00”,“17:00];

我想把颜色的值​​在小时列表中,显示黄色,并显示所选列表中的数据。下面是下拉列表和屏幕截图的代码。我该怎么做呢

导入“包装:颤振/材料.省道”;
类deneme扩展了StatefulWidget{
@凌驾
_denemeState createState()=>\u denemeState();
}
类_denemeState扩展状态{
列表时间=[“09:00”,“10:00”,“11:00”,“12:00”,“13:00”,“14:00”,“15:00”,“16:00”,“17:00];
所选列表=[“09:00”、“12:00”、“16:00”];
内霍里德;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“Deneme”),
),
主体:容器(
装饰:盒子装饰(
边框:边框。全部(颜色:Colors.blueAccent,宽度:2),
borderRadius:borderRadius.all((半径.圆形(10))),
填充:边缘组。对称(垂直:4,水平:24),
保证金:所有(12),
子项:DropdownButtonHideUnderline(
孩子:下拉按钮(
项目:小时地图((h){
返回下拉菜单项(
子:文本(
H
样式:TextStyle(字体大小:24),
),
值:小时指数(h),
);
}).toList(),
价值观:霍利德,
一经更改:(保密){
设置状态(){
hourId=隐秘的非罪犯;
});
},
提示:文本(“选择小时”),
),
),
),
);
}
}

您可以按彩色容器包装下拉菜单项子项(文本)的子项

您可以按彩色容器包装下拉菜单项子项(文本)的子项

只需计算每个项的背景色:
var backgroundColor=(选定的.contains(h))?颜色。黄色:颜色。白色并将其分配到现有的
TextStyle

child:下拉按钮(
项目:小时地图((h){
var backgroundColor=(selected.contains(h))?Colors.yellow:Colors.white;
返回下拉菜单项(
子:文本(
H
样式:TextStyle(
尺寸:24,
背景色:背景色,
),
),
值:小时指数(h),
);
}).toList(),
价值观:霍利德,
一经更改:(保密){
设置状态(){
hourId=隐秘的非罪犯;
});
},
提示:文本(“选择小时”),
),
结果:


只需计算每个项目的背景色:
var backgroundColor=(selected.contains(h))?颜色。黄色:颜色。白色并将其分配到现有的
TextStyle

child:下拉按钮(
项目:小时地图((h){
var backgroundColor=(selected.contains(h))?Colors.yellow:Colors.white;
返回下拉菜单项(
子:文本(
H
样式:TextStyle(
尺寸:24,
背景色:背景色,
),
),
值:小时指数(h),
);
}).toList(),
价值观:霍利德,
一经更改:(保密){
设置状态(){
hourId=隐秘的非罪犯;
});
},
提示:文本(“选择小时”),
),
结果:

import 'package:flutter/material.dart';


class deneme extends StatefulWidget {
  @override
  _denemeState createState() => _denemeState();
}

class _denemeState extends State<deneme> {
  List<String> hour = ["09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00"];
  List<String> selected = ["09:00", "12:00", "16:00"];
  int hourId;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Deneme"),
      ),
      body: Container(
        decoration: BoxDecoration(
            border: Border.all(color: Colors.blueAccent, width: 2),
            borderRadius: BorderRadius.all((Radius.circular(10)))),
        padding: EdgeInsets.symmetric(vertical: 4, horizontal: 24),
        margin: EdgeInsets.all(12),
        child: DropdownButtonHideUnderline(
          child: DropdownButton<int>(
            items: hour.map((h) {
              return DropdownMenuItem<int>(
                child: Text(
                  h,
                  style: TextStyle(fontSize: 24),
                ),
                value: hour.indexOf(h),
              );
            }).toList(),
            value: hourId,
            onChanged: (secilenOncelikId) {
              setState(() {
                hourId = secilenOncelikId;

              });
            },
            hint: Text("Select Hour"),
          ),
        ),
      ),
    );
  }
}