Flutter:下拉框选择

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d4![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/42534ef9c696405ba309f73bc3fd8dad.png)

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), // 默认正下方弹出
        ),
      ),
    );
  }
相关推荐
鸣弦artha28 分钟前
Flutter 框架跨平台鸿蒙开发——Flutter引擎层架构概览
flutter·架构·harmonyos
时光慢煮2 小时前
基于 Flutter × OpenHarmony 图书馆管理系统之构建搜索栏
flutter·华为·开源·openharmony
kirk_wang2 小时前
Flutter艺术探索-Flutter生命周期:State生命周期详解
flutter·移动开发·flutter教程·移动开发教程
鸣弦artha3 小时前
Flutter框架跨平台鸿蒙开发——Build流程深度解析
开发语言·javascript·flutter
鸣弦artha3 小时前
Flutter框架跨平台鸿蒙开发——StatelessWidget基础
flutter·华为·harmonyos
时光慢煮3 小时前
基于 Flutter × OpenHarmony 图书馆管理系统之构建模块选择器(底部导航栏样式)
flutter·开源·openharmony
夜雨声烦丿3 小时前
Flutter 框架跨平台鸿蒙开发 - 打造习惯打卡应用,连续天数统计与热力图展示
flutter·华为·harmonyos
2401_882351524 小时前
Flutter for OpenHarmony 商城App实战 - 地址编辑实现
android·java·flutter
南村群童欺我老无力.4 小时前
Flutter 框架跨平台鸿蒙开发 - 开发二维码生成器与扫描器
flutter·华为·typescript·harmonyos
南村群童欺我老无力.4 小时前
Flutter 框架跨平台鸿蒙开发 - 喝水提醒应用开发指南
flutter·华为·harmonyos