首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不能从颤动中的csv查看表格布局

不能从颤动中的csv查看表格布局
EN

Stack Overflow用户
提问于 2019-05-25 23:42:34
回答 1查看 532关注 0票数 0

我正在制作一个应用程序,它加载CSV文件并将其显示为列表视图,但我看不到我的数据,我不知道它为什么要这样做。这是csv链接a link

当我运行我的应用程序时,我只看到以下内容

相反,我想像这样填充空白

以下是代码

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'package:csv/csv.dart';
import 'dart:async' show Future;
import 'package:flutter/services.dart' show rootBundle;

class TableLayout extends StatefulWidget {
  @override
  _TableLayoutState createState() => _TableLayoutState();
}
class _TableLayoutState extends State<TableLayout> {
  @override
  Widget build(BuildContext context) {

  List<List<dynamic>> data = [];

  loadAsset() async {
    final myData = await rootBundle.loadString("asset/dreamss.csv");
    List<List<dynamic>> csvTable = CsvToListConverter().convert(myData);

    data = csvTable;
    print(data);
  }

    return MaterialApp(
    home:Scaffold(
      appBar: AppBar(title: Text("dsf"),),
      floatingActionButton: FloatingActionButton( onPressed: () async {
            await loadAsset();
            print(data);
          },),
      body: Table(
        children: data.map((item){
          return TableRow(
            children: item.map((row){
              return Text(row.toString());
            }).toList(),
          );
        }).toList(),
        ),
      ),

    );
  }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-26 00:25:51

你错过了setState

无论何时更改状态对象的内部状态,都要在传递给setState的函数中进行更改。

下面是完整的代码:

代码语言:javascript
复制
class TableLayout extends StatefulWidget {
  @override
  _TableLayoutState createState() => _TableLayoutState();
}
class _TableLayoutState extends State<TableLayout> {
  List<List<dynamic>> data = [];

  loadAsset() async {
    final myData = await rootBundle.loadString("asset/dreamss.csv");
    List<List<dynamic>> csvTable = CsvToListConverter().convert(myData);

    return csvTable;
  }

  void load() async{
    var newdata = await loadAsset();
    setState(() {
      data = newdata;
    });
    print(data);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(
        appBar: AppBar(title: Text("dsf"),),
        floatingActionButton: FloatingActionButton( onPressed: load),
        body: ListView(
          children: <Widget>[
        Table(
          children: data.map((item){
            return TableRow(
              children: item.map((row){
                return Text(row.toString());
              }).toList(),
            );
          }).toList(),
        ),
    ]),
    ));
  }
}

打印数据如下:

代码语言:javascript
复制
I/flutter ( 9677): [[S.no, Dream, Direct, House, Ending], [1, Quarrel between husband and wife, 03, 08, 13, 37, 40, 73, , 3], [2, Erotic dream, 17, 40, 53, 59, 60, 83, , ], [3, Bathing in the open, 08, 18, 28, 48, 78, 98, , 8], [4, Travelling, 08, 14, 18, 52, 64, 68, 74, 78, 98, , 8], [5, Travelling in an aeroplane, 23, 43, 53, 63, 68, 73, 83, 93, , 3], [6, Taking a walk, , , 0,1], [7, Studying, , , 5], [8, Corpse, , 9, 9], [9, Playing, 00, 27, 40, 50, 57, 60, , ], [10, Talking over the phone, 98, 96, 94, , ], [11, Eating, 01, 02, 05, 15, 16, 45, 75, 85, 95, , ], [12, Breast Feeding, 02, 03, 05, 12, 20, 52, 53, , ], [13, Male, 6, 6, ], [14, Female, 5, 5, ], [15, Child, 2,3, 2,3, ], [16, Police, 7, 87, 8, , ], [17, Wild Pig, 46, , ], [18, Snake or ilea fish, 09, 17, 37, 57, 77, 99, , 7], [19, Cow, goat or buffalo, 12, 18, 19, 22, 24, 34, 42, 54, 72, 74, 84, 94, 97, , ], [20, Cow, 4, 4, ], [21, Tiger, 9, 9, ], [22, Dog, 4,5,6, 4, ], [23, Horse, 8, 8, ], [24, Bird, 2, 2, ], [25, Elephant, 9, 9, ], [26, Snail, 0, 0, 0], [27, Turtl

请参考下面的我的屏幕截图:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56306335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档