【问题标题】:Flutter: How to Read Text Files from asset and show it to containerFlutter:如何从资产中读取文本文件并将其显示到容器中
【发布时间】:2021-11-15 09:50:00
【问题描述】:

我想从资产中读取文本文件并将其显示到我的颤振应用程序中的容器小部件。当我运行应用程序时,容器不显示任何文本,只是一个空白页。我试过这种方式:

 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';


 class cs_one extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 final appTitle = 'Read Text File';

 return MaterialApp(
  title: appTitle,
  home: Scaffold(
    appBar: AppBar(
      title: Text(appTitle),
    ),
    body: a()
    ),
   );
  }
} 

 class a extends StatelessWidget {
 String _data;

 Future<void> _loadData() async {
 final _loadedData = await rootBundle.loadString('lib/asset/textfile/cs_one.txt');
 _data = _loadedData;
}

@override
Widget build(BuildContext context) {
return Container(
  child: Text(_data),
   );
  }
}

pubsepec.YAML 文件:

  # To add assets to your application, add an assets section, like this:
      assets:
        - image/background.jpg
        - image/icon.png
        - lib/asset/textfile/cs_one.txt

我该怎么解决这个问题?

【问题讨论】:

    标签: flutter dart text load assets


    【解决方案1】:

    您需要在使用 StatefulWidget 或 FutureBuilder 显示数据之前加载数据。

    这是一个使用 StatefulWidget 的示例:

    class MyWidget extends StatefulWidget {
    
      const MyWidget({Key? key}): super(key: key);
    
      @override
      State<StatefulWidget> createState() => _MyWidgetState();
      
    }
    
    class _MyWidgetState extends State<MyWidget> {
    
      String? data;
    
      void _loadData() async {
        final _loadedData = await rootBundle.loadString('lib/asset/textfile/cs_one.txt');
        setState(() {
          data = _loadedData;
        });
      }
    
      @override
      void initState() {
        super.initState();
        _loadData();
      }
    
      @override
      Widget build(BuildContext context) {
        return Center(
          child: Text(data ?? 'empty'),
        );
      }
    }
    

    【讨论】:

    • 非常感谢!它有效。
    猜你喜欢
    • 2017-12-02
    • 2013-02-21
    • 2020-03-03
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多