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"),
),
),
),
);
}
}