Flutter アクティブなPopupMenuItemの背景色を変えるには?
解決したいこと
PopupMenuButton
を押して展開されるPopupMenuItem
のデザインを変更したいです。
どのように変更したいかというと、アクティブな(選択済みの)PopupMenuItem
の背景色をデフォルトの灰色から別の色に変えたいです。。。
PopupMenuButton👆
これを押すと
このようにPopupMenuItemが展開される。
「日付順」がアクティブなので背景色が灰色になっています。これを別の色に変える方法はあるのでしょうか?
該当のコード
const List<String> dropDownButtonChoices = <String>['新着順', '日付順', '人気順'];
class JobCountAndSort extends HookConsumerWidget {
const JobCountAndSort({Key? key}) : super(key: key);
@override
Widget build(BuildContext context, WidgetRef ref) {
final searchJob = ref.watch(SearchJobProvider);
final dropdownValue =
dropDownButtonChoices[searchJob.activeDropDownButtonIndex];
return Container(
child: Row(
children: [
// 省略
PopupMenuButton<String>(
child: Row(children: [
Text(
dropdownValue,
),
const Icon(
Icons.arrow_drop_down_sharp,
),
]),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8),
),
itemBuilder: (BuildContext context) {
return dropDownButtonChoices.map((String value) {
return PopupMenuItem<String>(
value: value,
child: Row(
children: [
Icon(
Icons.check,
size: 16,
color: dropdownValue == value
? Palette.primaryColor
: Palette.deepGrey,
),
const SizedBox(width: 8),
Text(
value,
style: TextStyle(
fontSize: 13,
fontWeight: dropdownValue == value
? FontWeight.bold
: FontWeight.w400,
),
),
],
),
);
}).toList();
},
color: Palette.white,
initialValue: dropdownValue,
onSelected: (String newValue) {
final newIndex = dropDownButtonChoices.indexOf(newValue);
ref
.read(SearchJobProvider.notifier)
.setActiveDropDownButtonIndex(newIndex);
},
),
],
),
);
}
}
0