首页 > 解决方案 > 如何在颤动的ExpansionPanels之间添加空格?

问题描述

我有一个ExpansionPanelList,我想在未展开时在展开图块之间创建一个间隙而不是分隔线。只有一个选项可以向ExpansionPanelList 添加高程而不是边距。我尝试添加填充,甚至是一个大小的框但是它不会工作。请帮帮我。 在此处输入图像描述

我的代码:

import 'package:flutter/material.dart';

class AccordionItem {
    AccordionItem({
      required this.content,
      required this.header,
      this.isExpanded = false,
 });

    Widget content;
    String header;
    bool isExpanded;
  }

    class Accordion extends StatefulWidget {
        List<AccordionItem> accordianItemsList;

        Accordion({required this.accordianItemsList});

         @override
         _AccordionState createState() => _AccordionState();
      } 

       class _AccordionState extends State<Accordion> {
          int expandedPanelIndex=0;

          @override
          Widget build(BuildContext context) {
              return SingleChildScrollView(
                   child: Padding(
                       padding: const EdgeInsets.all(8.0),
                                child: Container(
                                       child: _buildPanel(),
                        ),
                          ),
                            );
                        }

Widget _buildPanel() {
return ExpansionPanelList(
  expansionCallback: (int index, bool isExpanded) {
    widget.accordianItemsList[expandedPanelIndex].isExpanded = false;
    setState(() {
      widget.accordianItemsList[index].isExpanded = !isExpanded;
      expandedPanelIndex=index;
    });
  },
  children: widget.accordianItemsList.map<ExpansionPanel>((AccordionItem item) {
    return ExpansionPanel(
      backgroundColor: Colors.green,
      headerBuilder: (BuildContext context, bool isExpanded) {
        return ListTile(
          title: Text(item.header,style: Theme.of(context).textTheme.headline3!.copyWith(color: Colors.black),),
        );
      },
      body: ListTile(
          title: item.content,
          ),
      isExpanded: item.isExpanded,
    );
  }).toList(),
);
}
}

标签: flutterdart

解决方案


推荐阅读