如何在 ExpansionPanelList 中的标题之间添加间距?

Posted

技术标签:

【中文标题】如何在 ExpansionPanelList 中的标题之间添加间距?【英文标题】:How to add spacing between headers in an ExpansionPanelList? 【发布时间】:2020-01-06 01:23:43 【问题描述】:

我是 Flutter 的新手,并且对 Flutter 的造型方式有些挣扎(从没想过我会这么说,但我想念 css)。我制作了一个 ExpansionPanelList,我想在标题之间添加间距,以便我得到更像这样的东西:

而不是像这样 将所有标题压在一起

在此过程中,我还想在标题中添加一个框阴影(基本上,我希望它们看起来与第一张图像完全相同)。有没有简单的方法来实现这一点?

我尝试在标题构造函数中添加填充,但这只会使整个标题变大,并且没有在标题之间添加任何空间(回想起来这很有意义)。

这是我当前的代码(几乎只是一个样板列表)

Widget _buildPanel() 
    return ExpansionPanelList.radio(
      initialOpenPanelValue: null,
      expansionCallback: (int index, bool isExpanded)
        widget.store.toggleExpandable(index);
        if(widget.store.expandables.contains(true))
          if(!widget.store.fullView)
            ExpandNotification(expand: true)..dispatch(context);
            widget.store.toggleView();
          
        
        else
          if(widget.store.fullView)
            ExpandNotification(expand: false)..dispatch(context);
            widget.store.toggleView();
          
        

      ,
      children: _data.map<ExpansionPanelRadio>((Item item) 
        return ExpansionPanelRadio(
            value: item.id,
            canTapOnHeader: true,
            headerBuilder: (BuildContext context, bool isExpanded) 
              return ListTile(
                    title: Text(item.headerValue),
              );
            ,
            body: ListTile(
                title: Text(item.expandedValue),
                subtitle: Text('To delete this panel, tap the trash can icon'),
                trailing: Icon(Icons.delete),
                onTap: () 
                  setState(() 
                    _data.removeWhere((currentItem) => item == currentItem);
                  );
                ));
      ).toList(),
    );
  

提前致谢!

【问题讨论】:

嘿,@gollyzoom,你找到解决方案了吗,我仍然卡在这件事上。如果可以给我解决方案,那将非常有帮助。提前致谢 【参考方案1】:

在 headerBuilder 的返回中添加具有给定高度的 Divider()...

【讨论】:

以上是关于如何在 ExpansionPanelList 中的标题之间添加间距?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 系统是如何实现ExpansionPanelList的

Flutter ExpansionPanelList - 扩展回调不起作用

尝试将 ExpansionPanelList/ExpansionPanel 与(Firebase)流一起使用时出现颤振错误

Flutter 应用程序创建一个扩展面板列表

Flutter:在动画的、定位的容器中获取 ListView,作为堆栈的一部分

Flutter ExpansionPanel 不在 ListView 上展开