![](/img/trans.png)
[英]Flutter - Reorderable List with a Listview nested inside expansiontile
[英]Flutter Items inside ExpansionTile inside ListView are not scrollable
我试图在嵌套的 ListView Builder 中放置一个 ExpansionTile。 不幸的是,尽管尝试了所有尝试,但我无法使 ExpansionTile 内的 ListView 项目可滚动。
有点尝试使用 ClampPhysics 和 NeverClampPhysics 但似乎不起作用。
有什么想法可以完成吗? 任何指针? 我做错什么了吗?
这是代码。
body: SingleChildScrollView(
child: Column (
children: <Widget>[
ListTile(
title: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Card(
child: Text(' Sunrise : '+DateFormat.jms().format(DateTime.fromMillisecondsSinceEpoch(yamistart))),
),
Card(
child: Text(' Sunset : '+DateFormat.jms().format(DateTime.fromMillisecondsSinceEpoch(yamiset))),
),
],
),
),
Card(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: paksList == null ? 0 : paksList.length,
itemBuilder: (BuildContext context, int index){
/* Custom Code Here */
return Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
),
elevation: 8.0,
margin: new EdgeInsets.symmetric(horizontal: 10.0, vertical: 6.0),
child: Container(
decoration: BoxDecoration(color: (yfrom >= valnow || valnow >= yto) ? Color.fromRGBO(40, 75, 50, .9) : Color.fromRGBO(9, 72, 135, .9), border: Border.all(color: (yfrom >= valnow || valnow >= yto) ? Colors.redAccent : Colors.lightBlue)),
child: (yfrom >= valnow || valnow >= yto) ? ListTile(
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
title: Column(
children: <Widget>[
Text(
"Current Rhythm",
style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
]),
trailing: (yfrom >= valnow || valnow >= yto) ? null : Icon(Icons.keyboard_arrow_down_rounded) ,
) : ExpansionTile(
tilePadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
title: SingleChildScrollView(
child: Column(
children: <Widget>[
Text(
"Current Rhythm",
style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
])),
children: [
ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemCount: TestList == null ? 0 : TestList.length,
itemBuilder: (BuildContext context, int index){
/* Custom Code */
if (color == "Red"){
myColor = Colors.red;
}
else if (color == "Green"){
myColor = Colors.lightGreenAccent;
}
else {
myColor = Colors.yellow;
}
if (index ==0){
yfroms = yfrom;
ytos = yfroms+ duration*60*1000;
}
else{
yfroms = ytos;
ytos = ytos+duration*60*1000;
}
return Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
),
elevation: 8.0,
margin: new EdgeInsets.symmetric(horizontal: 10.0, vertical: 6.0),
child: Container(
decoration: BoxDecoration(color: myColor, border: Border.all(color: Colors.lightBlue)),
child: ListTile(
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
title: Container(
child: Column(
children: <Widget>[
Text(
"Current Rhythm : Silence ",
style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
]),
),
),
));
},)
],
// trailing: (yfrom >= valnow || valnow >= yto) ? null : Icon(Icons.keyboard_arrow_down_rounded) ,
),
),
);
},
),
)])),
);
您应该使用ExpandableListView
小部件来滚动您的 listView。 下面的链接将有助于您创建该小部件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.