[英]Display list of datas from sharedprefrence to text widget flutter?
[英]How can I read text from files and display them as list using widget/s in Flutter?
我可以問一種如何使這項工作的方法。
我有一個名為questions.txt的文本文件。
該文件包含以下問題:
我想從文件中加載這些問題,並在 Flutter 中將它們呈現為列表。
問卷.dart
import 'package:flutter/material.dart';
class Questionnaires extends StatefulWidget {
@override
_QuestionnairesState createState() => _QuestionnairesState();
}
class _QuestionnairesState extends State<Questionnaires> {
String q1 = "";
String q2 = "";
String q3 = "";
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
resizeToAvoidBottomInset: false,
body: Center(
child: Column(
children: <Widget>[
Text(q1),
Text(q2),
Text(q3)
],
),
),
),
);
}
}
您可以從使用rootBundle.loadString
從.txt
文件中檢索問題的最基本方法開始,然后使用ListView
小部件顯示它。
main.dart
import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Questions',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyAppScreen(),
);
}
}
class MyAppScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return MyAppScreenState();
}
}
class MyAppScreenState extends State<MyAppScreen> {
List<String> _questions = [];
Future<List<String>> _loadQuestions() async {
List<String> questions = [];
await rootBundle.loadString('path/to/questions.txt').then((q) {
for (String i in LineSplitter().convert(q)) {
questions.add(i);
}
});
return questions;
}
@override
void initState() {
_setup();
super.initState();
}
_setup() async {
// Retrieve the questions (Processed in the background)
List<String> questions = await _loadQuestions();
// Notify the UI and display the questions
setState(() {
_questions = questions;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Flutter Questions")),
body: Center(
child: Container(
child: ListView.builder(
itemCount: _questions.length,
itemBuilder: (context, index) {
return Text(_questions[index]);
},
),
),
),
);
}
}
這是問題的示例列表。
問題.txt
"How old are you?"
"Where do you live?"
"What is your age?"
在上面的示例代碼中,您正在逐行解析文本文件,請參閱LineSplitter 。 這對於測試 Flutter 的小型和示例項目很有用。 但是您應該能夠通過遵循 Flutter 的官方文檔來更新此實現,了解如何讀取和寫入文件。
此外,如果您想擴大 Flutter 項目,您應該研究如何在線托管您的問題,例如。 通過 REST API 提供服務,然后使用 Flutter 的http插件檢索它。
更多關於:
輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.