新手:如何在 Flutter 中添加多个 Listtile
Posted
技术标签:
【中文标题】新手:如何在 Flutter 中添加多个 Listtile【英文标题】:Newbie: How to Add Multiple Listtile in Flutter 【发布时间】:2021-08-10 04:33:43 【问题描述】:我有无法正常工作的代码。我需要获取由名称、地址、地区、电话和省份组成的 API 对象,但我不知道如何在 ListTile 中添加更多字符串。我的代码是:
医院类
String name;
String address;
String region;
String phone;
String province;
factory HospitalList.fromJson(Map<String, dynamic> json) => HospitalList(
name: json["name"],
address: json["address"],
region: json["region"],
phone: json["phone"],
province: json["province"],
);
Map<String, dynamic> toJson() =>
"name": name,
"address": address,
"region": region,
"phone": phone,
"province": province,
;
列表类
ListView _rsListView(data)
return ListView.builder(
padding: const EdgeInsets.all(10),
itemCount: data.length,
itemBuilder: (context, index)
// return data[index];
return _tile(
data[index].name, data[index].address, Icons.medical_services);
);
ListTile _tile( String title, String subtitle, IconData icon) =>
ListTile(
title: Text(title,
style: TextStyle(
fontWeight: FontWeight.w500,
fontSize: 20,
)
),
subtitle: Text(subtitle,
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 15
),
),
leading: Icon(icon, color: Colors.black),
);
有没有简单的解决方案可以在 ListStyle 中添加更多的字符串索引?
【问题讨论】:
【参考方案1】:根据documentation for ListTile
,它是固定高度的,不支持超过三行文本。如果您检查它,他们会提供一个示例,用于创建您自己的 can support more than three lines.
但是,我发现如果您在字幕文本中添加断线 (\n
),它实际上会按照您的预期工作。
$varName
允许在字符串中使用内联变量。因为您指的是变量中的变量,所以您将把它括在大括号 $var.name
中,然后添加一个带有 \n
的新行。所以你的字幕应该看起来像这样:
"$data[index].address\n$data[index].region\n$data[index].phone\n$data[index].province"
【讨论】:
以上是关于新手:如何在 Flutter 中添加多个 Listtile的主要内容,如果未能解决你的问题,请参考以下文章
在flutter中使用listview.builder添加多个彼此不同的动态小部件
在 setState() 方法中向 List 添加元素,而不是保存元素 Flutter