import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:openmediacentermobile/api/api.dart'; import 'log/log.dart'; import 'preview_tile.dart'; class VideoFeed extends StatefulWidget { const VideoFeed({Key? key}) : super(key: key); @override State createState() { return VideoFeedState(); } } class VideoFeedState extends State { List _vids = []; @override void initState() { super.initState(); API.query("video", "getMovies", {'Tag': 1, 'Sort': 0}).then((value) { final d = jsonDecode(value); List dta = (d['Videos'] as List).map((e) => VideoT.fromJson(e)).toList(); setState(() { _vids = dta; }); }); } @override Widget build(BuildContext context) { return GridView.builder( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, childAspectRatio: MediaQuery.of(context).size.width / MediaQuery.of(context).size.height, crossAxisSpacing: 10), itemCount: _vids.length, itemBuilder: (context, index) { Log.d("item $index built!"); return PreviewTile(dta: _vids[index]); }); } }