Вы можете начать с самого простого c способа получения вопросов из файла .txt
с помощью rootBundle.loadString
, а затем отобразить его с помощью виджета ListView
.
main. дротик
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]);
},
),
),
),
);
}
}
А вот примерный список вопросов.
questions.txt
"How old are you?"
"Where do you live?"
"What is your age?"
В примере кода выше вы разбираете текстовый файл построчно , см. LineSplitter . Это хорошо для небольших и типовых проектов, пока вы тестируете Flutter. Но вы должны быть в состоянии обновить эту реализацию, следуя официальным документам Flutter, о том, как вы можете читать и записывать файлы.
Более того, если вы хотите go большой с вашим проектом Flutter вы должны изучить способы размещения своих вопросов в Интернете, например. подается через API REST, а затем извлекается с помощью плагина http для Flutter.
Подробнее:
Выход: