我正在使用用RadioListTile
来在颤动中显示带有单选按钮的动态数据,但我希望将相同的列表显示为带有尾随图标编辑列表数据。
你能帮我扑扑吗?
RadioListTile(
groupValue: _currentIndex,
title: Text(
// addres["address_1"],
addres["firstname"] +
addres["lastname"] +
addres["address_1"] +
addres["city"] +
addres["country"],
overflow: TextOverflow.ellipsis,
maxLines: 3,
style: TextStyle(color: Colors.black, fontSize: 16.0),
),
value: int.parse(addres["address_id"]),
onChanged: (val) {
setState(() {
_currentIndex = val;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PickanAddresspage(selected_address: addres['address_id'],)));
});
},
)
答案 0 :(得分:0)
在标题中,您可以使用Row来包装文本和图标
使用Expanded和flex来控制所需的宽度
代码段
title: Row(
children: <Widget>[
Expanded(
flex: 3,
child: Text(
"firstname" +
"lastname" +
"address_1" +
"city" +
"country234123412344523523452542345234523523542345245234523452345235234523452345245234523452452542",
overflow: TextOverflow.ellipsis,
maxLines: 3,
style: TextStyle(color: Colors.black, fontSize: 16.0),
),
),
Expanded(
flex: 1,
child: InkWell(
child: Icon(
Icons.audiotrack,
color: Colors.green,
size: 30.0,
),
),
)
],
)
完整的测试代码
// Flutter code sample for
// ![RadioListTile sample](https://flutter.github.io/assets-for-api-docs/assets/material/radio_list_tile.png)
//
// This widget shows a pair of radio buttons that control the `_character`
// field. The field is of the type `SingingCharacter`, an enum.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
static const String _title = 'Flutter Code Sample';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: _title,
home: Scaffold(
appBar: AppBar(title: const Text(_title)),
body: MyStatefulWidget(),
),
);
}
}
enum SingingCharacter { lafayette, jefferson }
class MyStatefulWidget extends StatefulWidget {
MyStatefulWidget({Key key}) : super(key: key);
@override
_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
SingingCharacter _character = SingingCharacter.lafayette;
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
RadioListTile<SingingCharacter>(
title: const Text('Lafayette'),
value: SingingCharacter.lafayette,
groupValue: _character,
onChanged: (SingingCharacter value) {
setState(() {
_character = value;
});
},
),
RadioListTile<SingingCharacter>(
title: Row(
children: <Widget>[
Expanded(
flex: 3,
child: Text(
"firstname" +
"lastname" +
"address_1" +
"city" +
"country234123412344523523452542345234523523542345245234523452345235234523452345245234523452452542",
overflow: TextOverflow.ellipsis,
maxLines: 3,
style: TextStyle(color: Colors.black, fontSize: 16.0),
),
),
Expanded(
flex: 1,
child: InkWell(
child: Icon(
Icons.audiotrack,
color: Colors.green,
size: 30.0,
),
),
)
],
),
value: SingingCharacter.jefferson,
groupValue: _character,
onChanged: (SingingCharacter value) {
setState(() {
_character = value;
});
},
),
],
);
}
}