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

时间:2019-09-03 07:04:31

标签: flutter material-design customization

我是新手,对浮动方式有些挣扎(从没想过我会这么说,但我想念css)。我做了一个ExpansionPanelList,我想在标题之间添加间距,以便获得更多类似的信息: spaced headers

而不是像这样unspaced headers

那样将所有标题压在一起

当我在这里时,我也想在标题上添加一个框阴影(基本上,我希望它们看起来与第一张图像完全一样)。有一个简单的方法可以做到这一点吗?

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

这是我当前的代码(几乎只是样板清单)

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(),
    );
  }

谢谢!

1 个答案:

答案 0 :(得分:0)

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