Advertisement
Guest User

Untitled

a guest
Nov 11th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 3.45 KB | None | 0 0
  1. import 'package:cloud_firestore/cloud_firestore.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
  4. import 'package:transparent_image/transparent_image.dart';
  5.  
  6. import 'package:http/http.dart' as http;
  7.  
  8. class HomeTab extends StatelessWidget {
  9.  
  10.   @override
  11.   Widget build(BuildContext context) {
  12.  
  13. // Pegar as informações da API
  14.  
  15.     Future<String> getJSONData() async {
  16.       var response = await http.get(
  17.           Uri.encodeFull("http://treinamento.educ.ifrn.edu.br/api/educ/diario/meus_diarios/"),
  18.           headers: {"Authorization": "Token dfba99dbad894452f843d1af00ffbcd559c63e59"}
  19.       );
  20.  
  21.  
  22.  
  23.       print('Response status: ${response.statusCode}');
  24.       print('Response body: ${response.body}');
  25.  
  26.  
  27.     }
  28.  
  29.     // Trabalhando o Degrade do app
  30.     Widget _buildBodyBack() => Container(
  31.       decoration: BoxDecoration(
  32.         gradient: LinearGradient(
  33.           colors: [
  34.             Color.fromARGB(255, 51, 55, 232),
  35.             Color.fromARGB(255, 56, 113, 255),
  36.           ],
  37.           begin: Alignment.topLeft,
  38.           end: Alignment.bottomRight
  39.         )
  40.       ),
  41.     );
  42.  
  43.     // stack para quando quer escrever algo em cima de um fundo
  44.     return Stack(
  45.       children: <Widget>[
  46.         _buildBodyBack(),
  47.         CustomScrollView(
  48.           slivers: <Widget>[
  49.             SliverAppBar( //Onde deixa o item fixo no Scroll
  50.               floating: true,
  51.               snap: true, // quando abaixar a tela o titulo vai sumir. Quando subir, ele reaparece.
  52.               backgroundColor: Colors.transparent,
  53.               elevation: 0.0,
  54.               flexibleSpace: FlexibleSpaceBar(
  55.                 title: const Text("Educ Panel"),
  56.                 centerTitle: true,
  57.               ),
  58.             ),
  59.  
  60.             FutureBuilder<QuerySnapshot>(
  61.               future: Firestore.instance
  62.                 .collection("home").orderBy("pos").getDocuments(),
  63.               builder: (context, snapshot){
  64.                 if(!snapshot.hasData)
  65.                   return SliverToBoxAdapter(
  66.                     child: Container(
  67.                       height: 200.0,
  68.                       alignment: Alignment.center,
  69.                       child: CircularProgressIndicator(
  70.                         valueColor: AlwaysStoppedAnimation<Color>(Colors.white),
  71.                       ),
  72.                     )
  73.                   );
  74.                 else
  75.                   //Contar o número de Blocos
  76.                   return SliverStaggeredGrid.count(
  77.                       crossAxisCount: 2,
  78.                     mainAxisSpacing: 1.0, //Espaçamento Vertical
  79.                     crossAxisSpacing: 1.0, //Espaçamento Horizontal
  80.  
  81.                     staggeredTiles: snapshot.data.documents.map(
  82.  
  83.                         (doc){
  84.                           return StaggeredTile.count(doc.data["x"], doc.data["y"]);
  85.                   }
  86.                     ).toList(),
  87.  
  88.                     children: snapshot.data.documents.map(
  89.                         (doc){
  90.                           return FadeInImage.memoryNetwork(
  91.                               placeholder: kTransparentImage,
  92.                               image: doc.data["image"],
  93.                               fit: BoxFit.cover,
  94.                           );
  95.                         }
  96.                     ).toList(),
  97.  
  98.                   );
  99.               },
  100.             )
  101.  
  102.           ],
  103.         )
  104.       ],
  105.     );
  106.   }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement