单击打开时抖动,然后折叠下拉列表

时间:2019-07-17 07:38:30

标签: flutter dart flutter-animation

我正在尝试做可折叠的,但是我不确定确切需要写什么,我有下面的代码

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Welcome to WesterAf'),
        backgroundColor: Colors.lightBlueAccent,
        elevation: 0.0,
        iconTheme: new IconThemeData(color: Colors.lightBlueAccent),
      ),
      body: ExpansionTile(
        title: Text('Early Bird Registation'),
        // leading: Icon(Icons.local_pizza),
        trailing: Icon(Icons.expand_more),
        children: <Widget>[
          Column(
            children: <Widget>[
              new Row(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                  Text('general registation'),
                  Text('yesllow'),
                  Text('mitukula vekatesh'),
                  new Radio(value: 0, groupValue: 23, onChanged: null),
                ],
              )
            ],
          ),
          Column(
            children: <Widget>[
              new Row(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                  Text('general registation'),
                  Text('yesllow'),
                  Text('venkey'),
                  new Radio(value: 0, groupValue: 23, onChanged: null),
                ],
              )
            ],
          )
        ],
      ),
    );
  }

我正在获取下拉菜单,但我需要超过1,下面的图像正是我想要的外观。 enter image description here
enter image description here

1 个答案:

答案 0 :(得分:0)

目前,您正在构建一个ExpansionTile。

如果要使用多个ExpansionTiles,请使用ExpansionPanelList

它将ExpansionTiles的列表作为子级,并获得一个expandingCallback函数,您可以在其中处理如果单击ExpansionPanel会发生的情况。 例如,将状态设置为打开面板:

expansionCallback: (int index, bool isExpanded) {
  setState(() {
    _data[index].isExpanded = !isExpanded;
  });
},

请参阅官方文档,其中有一个代码示例。