我设法RadioListTile
根据我拥有的数据显示了一个列表。请参阅下面的代码:
class ShipFromItemList extends StatefulWidget {
@override
_ShipFromItemListState createState() => _ShipFromItemListState();
}
class _ShipFromItemListState extends State<ShipFromItemList> {
ShippingAddress _radioValue;
@override
Widget build(BuildContext context) {
return ScopedModelDescendant<MainModel>(builder: (context, child, model) {
return ListView(shrinkWrap: true, children: createRadioListUsers(model));
});
}
List<Widget> createRadioListUsers(MainModel model) {
List<Widget> widgets = [];
for (ShippingAddress shippingAddress in model.shipaddrsList) {
widgets.add(Column(
children: <Widget>[
SizedBox(height: 10),
Container(
child: RadioListTile(
value: shippingAddress,
groupValue: _radioValue,
title: Text(
shippingAddress?.name ?? "",
style: Theme.of(context).textTheme.title.copyWith(fontSize: 15),
),
subtitle: Text(
shippingAddress?.address ?? "",
style:
Theme.of(context).textTheme.caption.copyWith(fontSize: 13),
),
secondary: Text("14.728 mi",
style: Theme.of(context)
.textTheme
.caption
.copyWith(fontSize: 13)),
onChanged: (currentUser) {
print("Current User ${currentUser?.name}");
setSelectedUser(currentUser);
},
selected: _radioValue == shippingAddress,
activeColor: Colors.orange,
),
),
SizedBox(height: 10),
Divider(
height: 0.0,
),
],
));
}
return widgets;
}
setSelectedUser(ShippingAddress shippingAddress) {
setState(() {
_radioValue = shippingAddress;
});
}
}
但是,我希望有一天返回Select Radio
页面时,初始化选定的无线电是最后一个数据(稍后我将保存 firebase)。为了将最新数据保存为初始化选定的无线电,我必须保存哪些数据?
深感抱歉,为时已晚。
import 'package:flutter/material.dart';
class ShowSelectRadio extends StatefulWidget {
@override
ShowSelectRadioState createState() {
return new ShowSelectRadioState();
}
}
class ShowSelectRadioState extends State<ShowSelectRadio> {
int _currVal = 1;
String _currText = '';
List<GroupModel> _group = [
GroupModel(
text: "Flutter.dev",
index: 1,
),
GroupModel(
text: "Inducesmile.com",
index: 2,
),
GroupModel(
text: "Google.com",
index: 3,
),
GroupModel(
text: "Yahoo.com",
index: 4,
),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Show Selected Radio Example"),
),
body: Column(
children: <Widget>[
Expanded(
child: Center(
child: Text(_currText,
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
)),
),
),
Expanded(
child: Container(
height: 350.0,
child: Column(
children: _group
.map((t) => RadioListTile(
title: Text("${t.text}"),
groupValue: _currVal,
value: t.index,
onChanged: (val) {
setState(() {
_currVal = val.index;
_currText = t.text;
});
},
))
.toList(),
),
)),
],
),
);
}
}
class GroupModel {
String text;
int index;
GroupModel({this.text, this.index});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句