Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/cupertino.dart';
- import 'package:flutter/material.dart';
- import 'package:http/http.dart' as http;
- import 'dart:convert';
- void main() => runApp(BlogApp());
- class BlogApp extends StatefulWidget {
- @override
- _BlogAppState createState() => _BlogAppState();
- }
- class _BlogAppState extends State<BlogApp> {
- var _isLoading = true;
- var items;
- _fetchData() async {
- print("Attempting to fetch data from network");
- final url =
- "https://www.googleapis.com/blogger/v3/blogs/MY-BLOG-ID/posts?key=API-KEY";
- final response = await http.get(url);
- if (response.statusCode == 200) {
- // print(response.body);
- final map = jsonDecode(response.body);
- final itemsJson = map["items"];
- //itemsJson.forEach((item) {
- // print(item['title']);
- //});
- setState(() {
- _isLoading = false;
- this.items = itemsJson;
- });
- }
- }
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- home: Scaffold(
- appBar: AppBar(
- title: Text("BlogApp"),
- centerTitle: true,
- actions: <Widget>[
- IconButton(
- icon: Icon(Icons.refresh),
- onPressed: () {
- print("Reloading...");
- setState(() {
- _isLoading = true;
- });
- _fetchData();
- })
- ],
- ),
- body: Center(
- child: _isLoading
- ? CircularProgressIndicator()
- : ListView.builder(
- itemCount: this.items != null ? this.items.length : Container(),
- itemBuilder: (context, i) {
- final item = this.items[i];
- return Column(
- children: <Widget>[
- Image.network(item["image"]),
- Text(item["title"]),
- Divider()
- ],
- );
- //return Text("Row: $i");
- }),
- ),
- ),
- );
- }
- }
Add Comment
Please, Sign In to add comment