Guest User

Untitled

a guest
Aug 18th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'src/app.dart';
  3. void main(){
  4. runApp(App());
  5. }
  6.  
  7.  
  8. class ImageModel {
  9.  
  10. int id;
  11. String name;
  12. String url;
  13.  
  14.  
  15. ImageModel.fromJson(parsedJson){
  16. id = parsedJson['id'];
  17. name = parsedJson['name'];
  18. url = parsedJson['url'];
  19.  
  20. }
  21.  
  22.  
  23. }
  24.  
  25.  
  26.  
  27. //import
  28. import 'package:flutter/material.dart';
  29. import 'package:http/http.dart' show get; //import for making http requests
  30. import 'models/image_model.dart'; //import model
  31. import 'dart:convert'; //convert json
  32. import 'widgets/image_list.dart'; //import image widget
  33.  
  34.  
  35.  
  36. class App extends StatefulWidget{
  37.  
  38. createState() {
  39. return AppState();
  40. }
  41.  
  42. }
  43.  
  44.  
  45. // create class
  46. class AppState extends State<App> {
  47.  
  48. int counter = 0;
  49. List<ImageModel> images = [];
  50.  
  51.  
  52. void fetchImage() async{
  53.  
  54. counter++;
  55. var response = await get('http://192.168.1.66:3000/api/images/$counter');
  56. var imageModel = ImageModel.fromJson(json.decode(response.body));
  57.  
  58. setState(() {
  59. images.add(imageModel);
  60. });
  61.  
  62.  
  63. }
  64.  
  65.  
  66. Widget build(context) {
  67. return MaterialApp(
  68. home: Scaffold(
  69. body: ImageList(images),
  70. floatingActionButton: FloatingActionButton(
  71. onPressed: fetchImage,
  72.  
  73.  
  74. child: Icon(Icons.add),
  75.  
  76. ),
  77. appBar: AppBar(
  78. title: Text('Title'),
  79.  
  80. ),
  81.  
  82. ),
  83. );
  84. }
  85.  
  86.  
  87. }
  88.  
  89. import 'package:flutter/material.dart';
  90. import '../models/image_model.dart';
  91.  
  92.  
  93. class ImageList extends StatelessWidget {
  94.  
  95. final List<ImageModel> images;
  96.  
  97. ImageList(this.images);
  98.  
  99.  
  100. Widget build(context) {
  101. return ListView.builder(
  102. itemCount: images.length,
  103. itemBuilder: (context,int index){
  104.  
  105. return Container(
  106. margin: EdgeInsets.all(20.0),
  107. child: Image.network(images[index].url),
  108.  
  109. );
  110.  
  111. },
  112. );
  113. }
  114.  
  115. }
Add Comment
Please, Sign In to add comment