卡片小部件可以显示ListTile吗?

时间:2019-09-13 05:34:21

标签: flutter

在此应用中,当用户单击FAB时,它将返回包裹在Card中的GestureDetector。当用户点击显示的卡片时,GestureDetector会将他们导航到另一页。我想实现一个删除功能,以便可以关闭Card

因此,我将child:的{​​{1}}定义为带有后缀Card的{​​{1}},应该删除该特定的ListTile。但是,当我添加Icon时,它仅显示Card,而不显示结尾的Card

title:Icon一起显示在Cards中。

问题:SliverGrid小部件支持显示带有尾随小部件的crossAxisCount = 2还是我的实现错误?

P.S。我曾尝试设置Card,但仍不显示结尾的ListTile

卡生成功能:

crossAxisCount = 1

卡删除功能:

Icon

完整示例(不包括上述功能):

  void addItems() async {
          setState(() {
            cardList.insert(0, new GestureDetector(
              onTap: () async {
                await Navigator.push(context, MaterialPageRoute(
                  builder: (context) =>
                      TodoList(), // this just navigates to another screen ; not important in this question
                )
                );
              },
              child: Card(
                  child: ListTile(
                      title: Text("project 1"),
                      trailing: new Icon(Icons.remove_circle,
                        color: Colors.redAccent,),
//                      subtitle: whitefontstylemont(text: "project 1", size: 20,)) //this is just a custom TextStyle
              ),
            )
            ));
          });
        }

实际结果: actual_result

预期结果(假设仅显示标题和结尾图标,如下所示):

expected_result

1 个答案:

答案 0 :(得分:0)

确定要调用正确的方法。原因是有些东西还没有到位,或者您没有共享正确的代码。我将在下面解决这些问题。

  1. 首先,卡片中子文本的对齐方式。它在卡的中心,但是代码中没有使用中心属性。卡片小部件不会自动对齐文本。
  2. 第二个添加项目。您发布了 addItems 函数的代码,但还在构建中添加了名为 createCard 的另一个函数。因此我们不知道 createCard 是否具有与 addItems 函数相同的小部件树。
  3. 它无法正常工作,因此您看不到它,但是即使您能够看到 Icon 图标,您仍然无法删除该项目。原因是它是不可点击的小部件。如果要在其上添加点击功能,则应使用 IconButton 小部件。

这些是我在您的代码中发现的。如果您可以查看它们或共享正确的代码,也许我可以提供更多帮助。