如何在一个 ExpandablePanel 打开时关闭另一个 ExpandablePanel?

kon*_*541 1 dart flutter

我想使用可扩展的 - ExpandablePanel。问题是当第二个 ExpandablePanel 打开时如何关闭第一个 ExpandablePanel?我尝试使用controller.value,但找不到类似actions 或onChange 的东西。这个怎么做?

ExpandablePanel(
                controller: categoryController,
                iconPlacement: ExpandablePanelIconPlacement.right,
                header: Container(
                    margin: EdgeInsets.only(left: 40.0),
                    child: Text(
                      'Category',
                      style: TextStyle(
                          fontSize: 21.0, fontWeight: FontWeight.bold),
                      textAlign: TextAlign.center,
                    )),
                expanded: Container(
                  child: Icon(Icons.close)),
                tapHeaderToExpand: true,
                hasIcon: true,
              ),
ExpandablePanel(
                controller: subCategoryController,
                iconPlacement: ExpandablePanelIconPlacement.right,
                header: Container(
                    margin: EdgeInsets.only(left: 40.0),
                    child: Text(
                      'SubCategory',
                      style: TextStyle(
                          fontSize: 21.0, fontWeight: FontWeight.bold),
                      textAlign: TextAlign.center,
                    )),
                expanded: Container(
                  child: Icon(Icons.close)),
                tapHeaderToExpand: true,
                hasIcon: true,
              ),
Run Code Online (Sandbox Code Playgroud)

kon*_*541 6

这可能是最简单的解决方案。

categoryController.addListener((){
      if(categoryController.value)sexController.value=false;
    });
    sexController.addListener((){
      if(sexController.value)categoryController.value=false;
    });
Run Code Online (Sandbox Code Playgroud)