Untitled
unknown
plain_text
a year ago
1.7 kB
0
Indexable
Never
import 'package:flutter/material.dart'; import 'package:news_app/article.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: "News App", theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), initialRoute: NewsListPage.routeName, routes: {NewsListPage.routeName: (context) => const NewsListPage(), }, ); } } class NewsListPage extends StatelessWidget { const NewsListPage({super.key}); static const routeName = '/article_list'; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('News App'), ), body: FutureBuilder<String>( future: DefaultAssetBundle.of(context).loadString('assets/articles.json'), builder: (context, snapshot) { final List<Article> articles = parseArticle(snapshot.data); return ListView.builder( itemCount: articles.length, itemBuilder: (context, index){ return _buildArticleItem(context, articles[index]); }, ); }, ), ); } Widget _buildArticleItem(BuildContext context, Article article){ return ListTile( contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), leading: Image.network( article.urlToImage, width: 100, ), title: Text(article.title), subtitle: Text(article.author), ); } }