flutter如何垂直滚动高行

问题描述 投票:0回答:1

我想使以下行可滚动:

Row(
     children: [
       Expanded(
         flex: 1,
         child: timeColumn, // list of times
       ),
       dayColumn("Monday", "03-09-2002"), // monday info, etc.
       dayColumn("Tuesday", "03-10-2002"),
       dayColumn("Wednesday", "03-11-2002"),
       dayColumn("Thursday", "03-12-2002"),
       dayColumn("Friday", "03-13-2002"),
       dayColumn("Saturday", "03-14-2002"),
       dayColumn("Sunday", "03-15-2002"),
     ],
   )

并且我创建了一个dartpad来显示实际的代码:https://dartpad.dev/16547cbb0f37ac52299c1dd1d11c262e

要查看溢出问题,您可以将代码的这一部分设置为“太大”,从而在底部导致溢出:

  ///////////////////////////////////////////////////////////
  double rowHeight = 50;  // <-- Change this to set rowHeight
  ///////////////////////////////////////////////////////////

我使用的是行小部件,因为日期和日程安排信息每天将包含在一个对象中,所以我想将数据保留为一行列。 (所以,我认为listView是不可能的)

我尝试使用SingleChildScrollView(child:Row(....但是,我仍然遇到溢出情况。我觉得这是使用LayoutBuilder + BoxConstraints + ConstrainedBox的好时机,如下所示:How to scroll page in flutter

所以,使“高行”可滚动的最佳方法是什么?

flutter scrollable
1个回答
0
投票

我只是通过将行放在有限高度的容器中以检查其性能并将行放在SingleChildScrollView中来缩短行的高度,它可以平滑滚动。

           Container(
                height:50,
                child: SingleChildScrollView(
                   child : Row(
                        children: [
                            Expanded(
                              flex: 1,
                              child: timeColumn,
                            ),
                            dayColumn("Monday", "03-09-2002"),
                            dayColumn("Tuesday", "03-10-2002"),
                            dayColumn("Wednesday", "03-11-2002"),
                            dayColumn("Thursday", "03-12-2002"),
                            dayColumn("Friday", "03-13-2002"),
                            dayColumn("Saturday", "03-14-2002"),
                            dayColumn("Sunday", "03-15-2002"),
                          ],
                        )
                     )
                 ),
© www.soinside.com 2019 - 2024. All rights reserved.