用于读取PDF或Word或文本文件内容的插件,该插件将作为Flutter上的小部件添加?

问题描述 投票:0回答:1

您好,我想问一种方法使这项工作有效

我有一个记事本,例如questionslist.text

有此问题:

  1. 你几岁?
  2. 你住在哪里?
  3. 您几岁?

并使用这个问题作为窗口小部件中的文本形式的小部件

import 'package:flutter/material.dart';

class questionaires extends StatefulWidget {
  @override
  _questionairesState createState() => _questionairesState();
}

class _questionairesState extends State<questionaires> {
  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)
            ],
          ),
        ),
      ),
    );
  }
}
flutter text
1个回答
0
投票

您可以从最基本的方式开始从.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() {
    // Retrieve
    _setup();
    super.initState();
  }

  _setup() async {
    // Request for the questions (Processed in the background)
    List<String> questions = await _loadQuestions();

    // Update the UI based on the questions retrieved
    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?"

在上面的示例代码中,您正在逐行解析文本文件。当您测试Flutter时,这对小型项目和示例项目很有用。但是您应该能够通过遵循Flutter的官方docs来更新该实现,以了解如何读写文件。

此外,如果您希望在Flutter项目中大展身手,则应研究如何在线托管问题的方法,例如。通过Rest API提供服务,然后使用http插件进行检索。

更多信息:

输出:

© www.soinside.com 2019 - 2024. All rights reserved.