在 Flutter 中使用带有 ListView 的扩展磁贴 [英] Using Expansion Tile with ListView in Flutter
本文介绍了在 Flutter 中使用带有 ListView 的扩展磁贴的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从这个 图像 构建应用程序,但是当我将 ListView 与此扩展拼贴放在同一页面中,屏幕变空.
I'm trying to build the app from this image, but when i put the ListView in the same page with this Expansion Tile the screen become empty.
我添加了 shrinkwrap: true
并且工作了,但是现在我有一个新问题,当我 打开 ExpansionTile 或者当我有 许多选项时列表视图
I added shrinkwrap: true
and worked, but now I have a new problem, bottom overflowed when I open the ExpansionTile or when I have many option on ListView
下面是尝试过的代码:之后我会做一个ListBuilder
Follow is the tried code: I'll make a ListBuilder after
class HomeState extends State<Teste>{
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text (""),
),
body: Container(
padding: EdgeInsets.all(15.0),
child: Column(
children: <Widget>[
CardList(),
MyList()
],
),
),
);
}
}
Widget CardList(){
return new Flexible(
child: Card(
child: ExpansionTile(
title: Text("Periodo",
style: new TextStyle(
),textAlign: TextAlign.center,
),
children: <Widget>[
ListTile(
title: Text("Periodo 1",textAlign: TextAlign.center,),
),
ListTile(
title: Text("Periodo 2",textAlign: TextAlign.center,),
),
ListTile(
title: Text("Periodo 3",textAlign: TextAlign.center,),
),
ListTile(
title: Text("Periodo 4",textAlign: TextAlign.center,),
),
ListTile(
title: Text("Periodo 5",textAlign: TextAlign.center,),
),ListTile(
title: Text("Periodo 6",textAlign: TextAlign.center,),
),ListTile(
title: Text("Periodo 7",textAlign: TextAlign.center,),
),ListTile(
title: Text("Periodo 8",textAlign: TextAlign.center,),
),
],
),
)
);
}
Widget MyList(){
return new ListView(
scrollDirection: Axis.vertical,
shrinkWrap: true,
children: <Widget>[
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
Divider(),
ListTile(title: Text("Teste",textAlign: TextAlign.center,),),
],
);
}
推荐答案
更新代码没有错误 -
Updated Code with no Error -
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(""),
),
body: Container(
padding: EdgeInsets.all(15.0),
child: Column(
children: <Widget>[Flexible(child: CardList()), Flexible(child: MyList())],
),
),
);
}
}
Widget CardList() {
return SingleChildScrollView(
child: Card(
child: ExpansionTile(
title: Text(
"Periodo",
style: new TextStyle(),
textAlign: TextAlign.center,
),
children: <Widget>[
ListTile(
title: Text(
"Periodo 1",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 2",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 3",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 4",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 5",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 6",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 7",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 8",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 9",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 10",
textAlign: TextAlign.center,
),
),
ListTile(
title: Text(
"Periodo 11",
textAlign: TextAlign.center,
),
),
],
),
),
);
}
Widget MyList() {
return new ListView(
shrinkWrap: true,
children: <Widget>[
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
Divider(),
ListTile(
title: Text(
"Teste",
textAlign: TextAlign.center,
),
),
],
);
}
这篇关于在 Flutter 中使用带有 ListView 的扩展磁贴的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文