/* * @Author: 一凨 * @Date: 2018-12-22 21:01:51 * @Last Modified by: 一凨 * @Last Modified time: 2018-12-27 15:37:04 */ import 'package:flutter/material.dart'; //import 'package:fluttertoast/fluttertoast.dart'; class CheckedPopupMenuItemDemo extends StatefulWidget { _CheckedPopupMenuItemDemoState createState() => _CheckedPopupMenuItemDemoState(); } class _CheckedPopupMenuItemDemoState extends State { List _checkedValues; final String _checkedValue1 = 'One'; final String _checkedValue2 = 'Two'; final String _checkedValue3 = 'Free'; final String _checkedValue4 = 'Four'; @override void initState() { super.initState(); _checkedValues = [_checkedValue3]; } bool isChecked(String value) => _checkedValues.contains(value); void showCheckedMenuSelections(String value){ if(_checkedValues.contains(value)){ _checkedValues.remove(value); }else{ _checkedValues.add(value); } Scaffold.of(context).showSnackBar(new SnackBar( content: new Text('Checked $_checkedValues'))); } @override Widget build(BuildContext context) { return Container( color: Theme.of(context).primaryColor, child: ListTile( title: const Text('CheckedPopupMenuItem Demo',style: TextStyle(color: Colors.white),), trailing: PopupMenuButton( padding: EdgeInsets.zero, onSelected: showCheckedMenuSelections, icon: Icon(Icons.menu,color: Colors.white,), itemBuilder: (BuildContext context)=>>[ CheckedPopupMenuItem( value: _checkedValue1, checked: isChecked(_checkedValue1), child: Text(_checkedValue1) ), CheckedPopupMenuItem( value: _checkedValue2, enabled: false, checked: isChecked(_checkedValue2), child: Text(_checkedValue2) ), CheckedPopupMenuItem( value: _checkedValue3, checked: isChecked(_checkedValue3), child: Text(_checkedValue3) ), CheckedPopupMenuItem( value: _checkedValue4, checked: isChecked(_checkedValue4), child: Text(_checkedValue4) ) ], ), ), ); } }