Флаттер : Как перейти на новый экран с помощью json и listview

#flutter #http #listview #navigation

Вопрос:

Я начал трепетать прямо сейчас. Я изучаю http, в моем приложении отображаются текстовые списки «заголовок» Json.

Мой следующий шаг-перейти к новому экрану, на котором отображаются текстовые списки json «тело», когда я нажимаю текстовые списки json «заголовок».

Но я не смог найти никаких зацепок. Я не знаю, что делать, с чего начать….. не могли бы вы мне помочь? какой — нибудь совет или совет?

 import 'dart:async';
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

void main() {
  runApp(new MaterialApp(home: new HomePage()));
}

class HomePage extends StatefulWidget {
  @override
  HomePageState createState() => new HomePageState();
}

class HomePageState extends State<HomePage> {
  List data;

  Future<String> getData() async {
    var response = await http.get(
        Uri.parse(("https://jsonplaceholder.typicode.com/posts")),
        headers: {"Accept": "application/json"});

    this.setState(() {
      data = jsonDecode(response.body);
    });

    print(data[1]["title"]);

    return "Success!";
  }

  @override
  void initState() {
    this.getData();
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
          title: new Text("Listviews"), backgroundColor: Colors.blue),
      body: new ListView.builder(
        itemCount: data == null ? 0 : data.length,
        itemBuilder: (BuildContext context, int index) {
          return new ListTile(title: new Text(data[index]["title"]));
        },
      ),
    );
  }
}
 

введите описание изображения здесь

Комментарии:

1. всем привет. Это определенно вам очень поможет. я тоже только начал изучать флаттер. 😀 flutter.dev/документы/кулинарная книга/навигация/навигация-основы

Ответ №1:

Вы можете использовать onTap свойства в ListTile .

  return new ListTile(
     onTap:(){
       // Navigator code
     }
title: new Text(data[index]["title"]));