繁体   English   中英

Flutter ListView 内的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM