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

0
0

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3274 问题

查看课程