import 'package:diplomaticquarterapp/pages/MyAppointments/models/AskDocRequestTypeModel.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/askDocDialog.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/reminder_dialog.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/reminder_dialog_prescription.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:flutter/material.dart'; class CustomRadio extends StatefulWidget { List requestData; CustomRadio({this.requestData}); @override createState() { return new CustomRadioState(); } } class CustomRadioState extends State { List sampleData = new List(); @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { if (widget.requestData != null) { widget.requestData.forEach((element) { sampleData.add(new RadioModel(false, element.description, element.parameterCode)); }); } else { sampleData.add(new RadioModel(false, TranslationBase.of(context).appoReminder30, 30)); sampleData.add(new RadioModel(false, TranslationBase.of(context).appoReminder60, 60)); sampleData.add(new RadioModel(false, TranslationBase.of(context).appoReminder90, 90)); sampleData.add(new RadioModel(false, TranslationBase.of(context).appoReminder120, 120)); } }); } @override Widget build(BuildContext context) { return Column( children: [ ListView.builder( shrinkWrap: true, itemCount: sampleData.length, itemBuilder: (BuildContext context, int index) { return new InkWell( //highlightColor: Colors.red, splashColor: Colors.transparent, onTap: () { setState(() { sampleData.forEach((element) => element.isSelected = false); sampleData[index].isSelected = true; if (widget.requestData != null) { AskDocDialog.selectedParameterCode = sampleData[index].duration; } else { ReminderDialog.selectedDuration = sampleData[index].duration * 60000; PrescriptionReminderDialog.selectedDuration = sampleData[index].duration * 60000; } }); }, child: new RadioItem(sampleData[index]), ); }, ), ], ); } } class RadioItem extends StatelessWidget { final RadioModel _item; RadioItem(this._item); @override Widget build(BuildContext context) { return new Container( margin: new EdgeInsets.all(15.0), child: new Row( mainAxisSize: MainAxisSize.max, children: [ new Container( height: 30.0, width: 30.0, child: new Center( child: Image.asset("assets/images/new-design/check_icon.png", width: 15.0, height: 15.0), ), decoration: new BoxDecoration( color: _item.isSelected ? Colors.blue : Colors.transparent, border: new Border.all(width: 1.0, color: _item.isSelected ? Colors.blue : Colors.grey), borderRadius: const BorderRadius.all(const Radius.circular(50.0)), ), ), new Container( margin: new EdgeInsets.only(left: 15.0, right: 15.0), child: new Text(_item.text, style: TextStyle(fontSize: 16.0)), ), ], ), ); } } class RadioModel { bool isSelected; final String text; final int duration; RadioModel(this.isSelected, this.text, this.duration); }