項目を選択した後に折りたたもうとしていますExpansionTile
が、開いたリストが閉じません。
物件を利用しようとしたonExpansionChanged
が、利用できなかった
この問題をどのように解決しますか?
アイテムを選択した後に折りたたまれないことを示す GIF を挿入しますExpansionTile
。また、使用されるコードも以下に記載します。
import 'package:flutter/material.dart';
void main() {
runApp(new ExpansionTileSample());
}
class ExpansionTileSample extends StatefulWidget {
@override
ExpansionTileSampleState createState() => new ExpansionTileSampleState();
}
class ExpansionTileSampleState extends State<ExpansionTileSample> {
String foos = 'One';
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: const Text('ExpansionTile'),
),
body: new ExpansionTile(
title: new Text(this.foos),
backgroundColor: Theme.of(context).accentColor.withOpacity(0.025),
children: <Widget>[
new ListTile(
title: const Text('One'),
onTap: () {
setState(() {
this.foos = 'One';
});
},
),
new ListTile(
title: const Text('Two'),
onTap: () {
setState(() {
this.foos = 'Two';
});
},
),
new ListTile(
title: const Text('Three'),
onTap: () {
setState(() {
this.foos = 'Three';
});
},
),
]
),
),
);
}
}
ベストアンサー1
回避策は次のとおりです。グローバル キー (またはアイテムを選択した後に変化する値キー) を追加するだけで、ExpansionTile が強制的に再構築されます。欠点は、折りたたむときのアニメーションが失われることです。
ExpansionTile(
key: GlobalKey(),
title: Text(title),
children: listTiles,
...
)