flutter:未展开时更改ExpansionPanelList样式

xzlaal3s  于 2023-08-07  发布在  Flutter
关注(0)|答案(1)|浏览(198)

我想使用ExpansionPanelList,并且可以使用诸如高程之类的属性。
ExpansionPanelList未展开时,没有属性可以自定义外观,特别是未展开元素之间的填充和边框颜色。
我如何定制这些元素(如果不能直接定制,有没有变通方法)

idfiyjo8

idfiyjo81#

根据Flutter文档,ExpansionPanelList小部件不提供直接自定义选项。
1.您可以通过使用ListViewColumn Package ExpansionPanelList来对其进行自定义。

这里有一个例子,你可以试试:

ListView(
  children: [
    // Add any custom widgets or padding here
    ExpansionPanelList(
      // Expansion panel configuration
      expansionCallback: (int index, bool isExpanded) {
        // Handle expansion
      },
      children: [
        // Expansion panels
      ],
    ),
    // Add any custom widgets or padding here
  ],
)

字符串
1.您可以使用ExpansionPanel小部件。通过这样做,您还可以完全自定义和控制扩展行为。

这里有一个例子,你可以试试:

class CustomExpansionPanelList extends StatelessWidget {
  final List<CustomExpansionPanel> children;

  CustomExpansionPanelList({required this.children});

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        // Add any custom widgets or padding here
        for (var panel in children)
          panel,
        // Add any custom widgets or padding here
      ],
    );
  }
}

class CustomExpansionPanel extends StatefulWidget {
  // Custom properties and constructor

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

class _CustomExpansionPanelState extends State<CustomExpansionPanel> {
  bool _isExpanded = false;

  @override
  Widget build(BuildContext context) {
    return ExpansionPanel(
      // Expansion panel configuration
      isExpanded: _isExpanded,
      headerBuilder: (context, isExpanded) {
        // Header content
        // Add any custom styling for the header when not expanded
      },
      body: Container(
        // Body content
        // Add any custom styling for the body when expanded
      ),
      canTapOnHeader: true,
      onExpansionChanged: (isExpanded) {
        setState(() {
          _isExpanded = isExpanded;
        });
      },
    );
  }
}


我希望这可以帮助您构建或自定义ExpansionPanelList

相关问题