You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter开发:如何修改DropdownMenu组件的边框颜色?

在Flutter中修改DropdownMenu组件的边框颜色

方法一:单个组件自定义样式

直接给DropdownMenu的inputDecoration参数传入自定义的InputDecoration,就能分别设置未聚焦和聚焦状态下的边框颜色:

DropdownMenu<String>(
  initialSelection: 'Option 1',
  // 自定义输入框装饰,修改边框颜色
  inputDecoration: InputDecoration(
    enabledBorder: OutlineInputBorder(
      borderSide: BorderSide(color: Colors.red), // 未点击时的边框颜色
      borderRadius: BorderRadius.circular(8),
    ),
    focusedBorder: OutlineInputBorder(
      borderSide: BorderSide(color: Colors.blue, width: 2), // 点击聚焦后的边框颜色
      borderRadius: BorderRadius.circular(8),
    ),
    contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 12),
  ),
  dropdownMenuEntries: const [
    DropdownMenuEntry(value: 'Option 1', label: '选项1'),
    DropdownMenuEntry(value: 'Option 2', label: '选项2'),
    DropdownMenuEntry(value: 'Option 3', label: '选项3'),
  ],
)

方法二:全局主题统一配置

如果想让整个应用的DropdownMenu都用相同的边框样式,直接在全局Theme里配置DropdownMenuThemeData即可:

MaterialApp(
  theme: ThemeData(
    dropdownMenuTheme: DropdownMenuThemeData(
      inputDecorationTheme: InputDecorationTheme(
        enabledBorder: OutlineInputBorder(
          borderSide: BorderSide(color: Colors.green),
        ),
        focusedBorder: OutlineInputBorder(
          borderSide: BorderSide(color: Colors.orange, width: 2),
        ),
      ),
    ),
  ),
  home: YourHomePage(),
)

注意:如果同时设置了组件内的inputDecoration和全局主题,组件内的自定义样式会优先生效。

内容的提问来源于stack exchange,提问作者Jorpy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:27:12