Отображение вопросов из API по одному в Flutter - PullRequest
0 голосов
/ 17 октября 2019

Я хочу отобразить вопросы, которые я получаю от API, один за другим. Я вызываю API, анализирую и сохраняю данные, но не знаю, как отобразить каждый вопрос отдельно. Я могу поместить их в список, но это все. У меня есть виджет с FutureBuilder, который вызывает API, и в настоящее время я пытаюсь отправить данные в другой виджет и манипулировать ими там, используя другой FutureBuilder (чтобы я не продолжал вызывать API, когда я перебираю список вопросов, чтобыпоказать их). У меня есть целое число, чтобы отслеживать текущую позицию. Как мне это сделать?

Часть кода: Здесь я пытаюсь отправить данные в другой виджет.

FutureBuilder<Reply>(
              future: questions(token, id),
              builder: (context, snapshot) {
                if (snapshot.hasError) {
                  print('Error : ${snapshot.error}'); //show error on the terminal
                  return Text('Error : ${snapshot.error}'); //show error on the app
                } else if (snapshot.hasData) {
                  reply = snapshot.data;
                  return Show_Questions(reply: reply,);
                } else {
                  return Center(child: CircularProgressIndicator()); //else display a loading indicator
                } //loading indicator
              }
          ),

Любая помощь приветствуется. Я могу разместить больше кода, если это необходимо.

1 Ответ

0 голосов
/ 18 октября 2019
class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: new FutureBuilder(
          future: questions(token, id),
          initialData: [],
          builder: (context, snapshot) {
            return createListView(context, snapshot);
          }),
    );

  }

  Widget createListView(BuildContext context, AsyncSnapshot snapshot) {
    var values = snapshot.data;

    return ListView.builder(
      itemCount: values == null ? 0 : values.length,
      itemBuilder: (BuildContext context, int index) {
        return GestureDetector(
          onTap: () {
            setState(() {

            });
          },
          child: Column(
            children: <Widget>[
              new ListTile(
                title: Text(values[index]),
              ),
              Divider(
                height: 2.0,
              ),
            ],
          ),
        );
      },
    );
  }
}

надеюсь, поможет вам:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...