ExpansionTile问题
来源:10-3 基于ExpansionTile实现可展开的列表【列表还可以这样做】

烧饼花
2021-11-09
import ‘package:flutter/material.dart’;
import ‘package:shared_preferences/shared_preferences.dart’;
class ExpansionTitlePage extends StatefulWidget {
const ExpansionTitlePage({Key? key}) : super(key: key);
@override
_ExpansionTitlePageState createState() => _ExpansionTitlePageState();
}
const CITY_NAMES = {
};
class _ExpansionTitlePageState extends State{
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(‘折叠面板’),leading: BackButton()),
body: Container(
child: ListView(
children: _buildList(),
),
)
);
}
List _buildList() {
List widgets = [];
CITY_NAMES.keys.forEach((key) {
widgets.add(_item(key, CITY_NAMES[key]));
});
return widgets;
}
Widget _item(String city, List? subCities) {
return ExpansionTile(
title: Text(
city,
style: TextStyle(color: Colors.black54, fontSize: 20),
),
children: subCities!.map((subCity) => _buildSub(subCity)).toList()
);
}
// Widget _buildSub(String subCity) {
// return FractionallySizedBox(
// widthFactor: 1,
// child: Container(
// height: 50,
// margin: EdgeInsets.only(bottom: 5),
// decoration: BoxDecoration(color: Colors.lightBlueAccent),
// child: Text(subCity),
// ));
// }
Widget _buildSub(String subCity) {
return FractionallySizedBox(
widthFactor: 1,
child: Container(
height: 300,
margin: EdgeInsets.only(bottom: 5),
decoration: BoxDecoration(color: Colors.lightBlueAccent),
child: ListView(
children: [
Text(subCity),
_buildSub1(subCity)
],
),
));
}
Widget _buildSub1(String subCity) {
return ExpansionTile(
title: Text(
subCity,
style: TextStyle(color: Colors.black54, fontSize: 20),
),
);
}
}
老师好,我在ExpansionTile里面再套了一个ExpansionTile,可是里面的无法滑动了,是哪里漏了吗
1回答
-
CrazyCodeBoy
2021-11-12
ExpansionTile不支持嵌套ExpansionTile
00
相似问题