body: Container(color: Colors.white,
child: SingleChildScrollView(
child : Column(
children : [
Padding(padding: EdgeInsets.only(left : 23.0, top: 23.0, right: 23.0, bottom: 5.0),
child : Text("Title", style: MyTextStyles.textNormal,)),
ListView.builder(
padding: EdgeInsets.only(left: 13.0, right: 13.0, bottom: 25.0),
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: PersonModel.icData.length,
itemBuilder: (context, index) {
PersonModel _model = PersonModel.icData[index];
return Column(
children: <Widget>[
Divider(
height: 17.0,
color: MyColors.white,
),
ExpansionTile(
key: PageStorageKey<String>(index.toString()),
initiallyExpanded: false,
leading:
new ClipOval(
child: SvgPicture.asset(
_model.picture,
height: 57.0,
width: 57.0,
),
),
title: Text(_model.title,style: TextStyle(color: Color(0xFF09216B), fontFamily: 'ProximaNova-Bold')),
subtitle: Text(_model.subtitle, style: TextStyle(color: Colors.black, fontSize: 13.0,),),
children: <Widget>[
Padding(padding: EdgeInsets.only(left: 20.0, top: 15.0),
child : Text(_model.title + ' ' +_model.detail,)
)
],
onExpansionChanged: ((newState){
print(' is now : ' + newState.toString());
})
),
]
//trailing:
);
},
)
]
),
)
),
пример
Я пытаюсь создать личный список с ExpansionTile во флаттере. Персональный список имеет свойства и детализацию. Я хочу, чтобы первый элемент ExpansionTile по умолчанию был открыт. И я хочу, чтобы при нажатии на другой элемент текущий элемент был закрыт. Так что только один элемент будет открыт всегда. Как мне это сделать? Спасибо.