b70dec92594838a8b2c130717938aa.png)
文档地址dropdown_button2
js
// 限价、市价 状态
final List<String> orderTypes = ['普通委托', '市价委托'];
String? selectedOrderType = '普通委托';
changeOrderType(String type) {
selectedOrderType = type;
update(["continuous"]);
}
// 杠杆
final List<String> leverages = ['1X', '5X', '10X', '20X', '50X'];
String? selectedLeverage = '1X';
changeLeverage(String leverage) {
selectedLeverage = leverage;
update(["continuous"]);
}
// 委托
Widget _buildLeftOrderType() {
return DropdownButtonHideUnderline(
child: DropdownButton2<String>(
isExpanded: true,
value: controller.selectedOrderType,
items: controller.orderTypes.map((item) => DropdownMenuItem<String>(
value: item,
child: TextWidget.body(item,size: 26.sp,color: AppTheme.color000,),
)).toList(),
onChanged: (value) {
controller.changeOrderType(value!);
},
buttonStyleData: ButtonStyleData(
height: 72.w, // 高度和你的红框一致
width: 180.w, // 宽度自适应父容器
padding: EdgeInsets.only(left: 20.w, right: 0,),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.w),
color: AppTheme.colorGreen,
),
),
dropdownStyleData: DropdownStyleData(
width: null, // 跟随按钮宽度
decoration: BoxDecoration(
color: AppTheme.dividerColor,
borderRadius: BorderRadius.circular(4),
),
offset: const Offset(0, 0), // 默认正下方弹出
),
),
);
}
// 杠杆
Widget _buildLeftLeverage() {
return DropdownButtonHideUnderline(
child: DropdownButton2<String>(
isExpanded: true,
value: controller.selectedLeverage,
items: controller.leverages.map((item) => DropdownMenuItem<String>(
value: item,
child: TextWidget.body(item,size: 26.sp,color: AppTheme.color000,),
)).toList(),
onChanged: (value) {
controller.changeLeverage(value!);
},
buttonStyleData: ButtonStyleData(
height: 72.w, // 高度和你的红框一致
width: 140.w, // 宽度自适应父容器
padding: EdgeInsets.only(left: 20.w, right: 0,),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.w),
border: Border.all(width: 1,color: AppTheme.dividerColor2),
),
),
dropdownStyleData: DropdownStyleData(
width: null, // 跟随按钮宽度
decoration: BoxDecoration(
color: AppTheme.dividerColor,
borderRadius: BorderRadius.circular(4),
),
offset: const Offset(0, 0), // 默认正下方弹出
),
),
);
}