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
相关产品推荐
相关产品推荐

