我已经创建了下面的DropDown小部件,以自定义我使用的时间
import 'package:flutter/material.dart';
import 'package:universalteam/Components/AppColors.dart';
Widget CustomDropdown({
required List<String> items,
required String hint,
double borderRadius = 16,
double width = double.infinity,
double height = 60,
double left = 0,
double right = 0,
double top = 0,
double bottom = 0,
double fontSize = 16,
Color color = AppColors.black,
Color containerBackgroundColor = AppColors.RegisterPageTextFieldColor,
Color textFieldBackgroundColor = AppColors.RegisterPageTextFieldColor,
double contentPaddingLeft = 12,
double contentPaddingRight = 0,
TextAlign textalign = TextAlign.left,
bool isRequired = false,
void Function(String?)? onChanged,
}) {
String? _selectedItem;
return Visibility(
visible: true,
child: Container(
width: width,
height: height,
padding: EdgeInsets.only(
left: left,
right: right,
top: top,
bottom: bottom,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(borderRadius)),
color: containerBackgroundColor,
),
child: Container(
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(borderRadius)),
color: textFieldBackgroundColor,
),
child: DropdownButtonFormField<String>(
value: _selectedItem,
style: TextStyle(
fontSize: fontSize,
fontFamily: "Poppins",
fontWeight: FontWeight.w400,
color: AppColors.darkGray,
),
decoration: InputDecoration(
label: RichText(
softWrap: true,
text: TextSpan(
text: hint,
style: TextStyle(
color: AppColors.darkGray,
),
children: [
isRequired == true
? TextSpan(
text: ' * ',
style: TextStyle(
color: AppColors.darkMagenta,
fontWeight: FontWeight.bold,
),
)
: TextSpan(text: '')
],
),
),
floatingLabelBehavior: FloatingLabelBehavior.never,
border: InputBorder.none,
contentPadding: EdgeInsets.only(
left: contentPaddingLeft,
right: contentPaddingRight,
),
),
onChanged: (String? newValue) {
_selectedItem = newValue;
onChanged?.call(newValue);
},
items: items.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(
value,
textAlign: TextAlign.center,
style: TextStyle(
color: Color(0xFF5F5F60),
fontSize: 13,
fontFamily: 'Poppins',
fontWeight: FontWeight.w400,
height: 0.12,
),
),
);
}).toList(),
icon: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Icon(
Icons.keyboard_arrow_down,
size: 25,
color: AppColors.darkMagenta,
),
SizedBox(width: 17)
],
),
),
),
),
);
}
然而,当我调用它时,图标并不是垂直居中的.我一直在改变周围的一切,想找到一种方法,但却找不到.还有,是否有一种方法来自定义如何显示的浏览器选项?
它看起来是这样的: