小部件列表未显示在屏幕上

时间:2021-07-23 15:13:56

标签: flutter android-studio

我有这个代码,它将在数据库中获取提醒列表并将其显示在屏幕上。它适用于提醒列表。问题是当列表为空(没有提醒)时,我希望它显示一些类似“没有提醒”的文字。所以我尝试使用列、文本小部件,我将它们包裹在如下列表中,但屏幕上没有显示。

如果我删除 [],则会出错无法从方法“buildReminderList”返回“Card”类型的值,因为它的返回类型为“List”。< /p>

有谁知道如何在“即将到来”列表为空的情况下显示“没有提醒”这样的文字。

List<Widget> buildReminderList(List<Reminder> reminders) {
    debugPrint(reminders.length.toString());
    if (reminders != null)
      return reminders.map((Reminder reminder)
      => ListTile()).toList();
    else
      return [Card(
          child: ListTile(
            title: Text("There is no reminder", style: TextStyle(fontWeight: FontWeight.bold)),
          )
      )];
  }

enter image description here

2 个答案:

答案 0 :(得分:0)

只需将 List<Widget> 替换为 Widget:-

Widget buildReminderList(List<Reminder> reminders) {
    debugPrint(reminders.length.toString());
    if (reminders != null)
      return reminders.map((Reminder reminder)
      => ListTile()).toList();
    else
      return Text("There is no reminder", style: TextStyle(fontWeight: FontWeight.bold));
  }

答案 1 :(得分:0)

结果

output

试试这个方法

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';


class Test extends StatelessWidget {
  List<Widget> buildReminderList() {
    return [
      Card(
        child: ListTile(
          title: Text("There is no reminder",
              style: TextStyle(fontWeight: FontWeight.bold)),
        ),
      ),
    ];
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ListView(
          children: [
            ...buildReminderList().toList(),
          ],
        ),
      ),
    );
  }
}