Flutter 带列和列的颤振座椅视图

Flutter 带列和列的颤振座椅视图,flutter,Flutter,我是弗利特的新手。我想使用Row和Column构建火车座位视图。但我不能。 此外,此视图必须可滚动。我尝试了Table小部件,但它不能滚动到flutter 行和列计数作为动态数据来自api。我试图像下面这样静态地构建视图,但我需要动态地构建视图 提前谢谢 @覆盖 小部件构建(构建上下文){ 返回脚手架( 正文:SingleChildScrollView( 滚动方向:轴水平, 子:列( 儿童:[ 划船( 儿童:[ 容器(高度:40,宽度:40,子项:文本(“”), 容器(高度:40,宽度:40,

我是弗利特的新手。我想使用Row和Column构建火车座位视图。但我不能。 此外,此视图必须可滚动。我尝试了Table小部件,但它不能滚动到flutter

行和列计数作为动态数据来自api。我试图像下面这样静态地构建视图,但我需要动态地构建视图

提前谢谢

@覆盖
小部件构建(构建上下文){
返回脚手架(
正文:SingleChildScrollView(
滚动方向:轴水平,
子:列(
儿童:[
划船(
儿童:[
容器(高度:40,宽度:40,子项:文本(“”),
容器(高度:40,宽度:40,子项:文本(“1”)),
容器(高度:40,宽度:40,子项:文本(“2”)),
容器(高度:40,宽度:40,子项:文本(“3”)),
容器(高度:40,宽度:40,子项:文本(“4”)),
]
),
划船(
儿童:[
容器(高度:40,宽度:40,子项:文本(“A”),
墨水池(onTap:({print(“00”);},子对象:容器(高度:40,宽度:40,子对象:文本(“00”)),
墨水池(onTap:({print(“01”);},子对象:容器(高度:40,宽度:40,子对象:文本(“01”)),
墨水池(onTap:({print(“02”);},子对象:容器(高度:40,宽度:40,子对象:文本(“02”)),
墨水池(onTap:({print(“03”);},子对象:容器(高度:40,宽度:40,子对象:文本(“03”))
],
),
划船(
儿童:[
容器(高度:40,宽度:40,子项:文本(“B”),
墨水池(onTap:({print(“10”);},子对象:容器(高度:40,宽度:40,子对象:文本(“10”)),
墨水池(onTap:({print(“11”);},子对象:容器(高度:40,宽度:40,子对象:文本(“11”)),
墨水池(onTap:({print(“12”);},子对象:容器(高度:40,宽度:40,子对象:文本(“12”)),
墨水池(onTap:({print(“13”);},子对象:容器(高度:40,宽度:40,子对象:文本(“13”)),
],
),
划船(
儿童:[
容器(高度:40,宽度:40,子项:文本(“C”),
墨水池(onTap:({print(“20”);},子对象:容器(高度:40,宽度:40,子对象:文本(“20”)),
墨水池(onTap:({print(“21”);},子对象:容器(高度:40,宽度:40,子对象:文本(“21”)),
墨水池(onTap:({print(“22”);},子对象:容器(高度:40,宽度:40,子对象:文本(“22”)),
墨水池(onTap:({print(“23”);},子对象:容器(高度:40,宽度:40,子对象:文本(“23”)),
],
),
],
),
)
);
}

您可以将任何小部件包装在SingleChildScrolLView中,使其可滚动。因此,如果Table小部件适合您,请尝试一下

如前所述,任何东西都可以通过这种方式滚动。因此,您可以制作一个适合整个屏幕的容器,用SingleChildScrolLView包装它,然后在其中放入您想要的任何内容


您可以将任何小部件包装在SingleChildScrolLView中,使其可滚动。因此,如果Table小部件适合您,请尝试一下

如前所述,任何东西都可以通过这种方式滚动。因此,您可以制作一个适合整个屏幕的容器,用SingleChildScrolLView包装它,然后在其中放入您想要的任何内容


您必须使用
列表视图。生成
滚动视图
以动态地将座椅添加到行和列中

  • 创建一个小部件来表示
    座位
  • 假设您有10个api项,然后使用
    GridView.count
    自动为您生成列

  • 例子
    您必须使用
    Listview.generate
    ScrollView
    将座椅动态添加到行和列中

  • 创建一个小部件来表示
    座位
  • 假设您有10个api项,然后使用
    GridView.count
    自动为您生成列

  • 例子
    我已经使用了SingleChildScrollView。我的问题是构建座椅视图动态我已经使用了SingleChildScrollView。我的问题是动态构建座椅视图你面临什么问题?我需要动态构建上面的视图。我的意思是有列和行计数来自api。我应该根据@Eikown的值构建一个座椅视图。你面临什么问题?我需要动态构建上面的视图。我的意思是有列和行计数来自api。我应该根据@Eiko的值构建一个座椅视图
     @override
      Widget build(BuildContext context) {
        return Scaffold(
        body: SingleChildScrollView(
                scrollDirection: Axis.horizontal,
                child: Column(
                  children: <Widget>[
                    Row(
                      children: <Widget>[
                        Container(height: 40, width: 40,child: Text("")),
                        Container(height: 40, width: 40,child: Text("1")),
                        Container(height: 40, width: 40,child: Text("2")),
                        Container(height: 40, width: 40,child: Text("3")),
                        Container(height: 40, width: 40,child: Text("4")),
                      ]
                    ),
                    Row(
                      children: <Widget>[
                        Container(height: 40, width: 40,child: Text("A")),
                        InkWell(onTap: () {print("00");},child:Container(height: 40, width: 40,child: Text("00"))),
                        InkWell(onTap: () {print("01");},child:Container(height: 40, width: 40,child: Text("01"))),
                        InkWell(onTap: () {print("02");},child:Container(height: 40, width: 40,child: Text("02"))),
                        InkWell(onTap: () {print("03");},child:Container(height: 40, width: 40,child: Text("03")))
                      ],
                    ),
                    Row(
                      children: <Widget>[
                        Container(height: 40, width: 40,child: Text("B")),
                        InkWell(onTap: () {print("10");},child:Container(height: 40, width: 40,child: Text("10"))),
                        InkWell(onTap: () {print("11");},child:Container(height: 40, width: 40,child: Text("11"))),
                        InkWell(onTap: () {print("12");},child:Container(height: 40, width: 40,child: Text("12"))),
                        InkWell(onTap: () {print("13");},child:Container(height: 40, width: 40,child: Text("13"))),
                      ],
                    ),
                    Row(
                      children: <Widget>[
                        Container(height: 40, width: 40,child: Text("C")),
                        InkWell(onTap: () {print("20");},child:Container(height: 40, width: 40,child: Text("20"))),
                        InkWell(onTap: () {print("21");},child:Container(height: 40, width: 40,child: Text("21"))),
                        InkWell(onTap: () {print("22");},child:Container(height: 40, width: 40,child: Text("22"))),
                        InkWell(onTap: () {print("23");},child:Container(height: 40, width: 40,child: Text("23"))),
                      ],
                    ),
                  ],
                ),
          )
        );
      }
    
    
    child: GridView.count(
       crossAxisCount:5,
       children: Listview.generate(10,(index){
           return Seat(
             id:json_response["items"][index]["id"]
             booked:false,
          );
        }
      ),
    )