新手:如何在 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

如何将多个孩子添加到颤动的脚手架主体

如何在 Flutter 中将图标添加到 List View Builder 列表中?

如何在谷歌地图上添加多个标记

如何在 Flutter 中添加多个相同类型的 ChangeNotifierProvider