Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 1.62 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:english_words/english_words.dart';
  3.  
  4. void main() => runApp(MyApp());
  5.  
  6. class MyApp extends StatelessWidget {
  7.   @override
  8.   Widget build(BuildContext context) {
  9.     return MaterialApp(
  10.       title: 'Startup Name Generator',
  11.       home: RandomWords()
  12.     );
  13.   }
  14. }
  15.  
  16. class RandomWordsState extends State<RandomWords> {
  17.   final List<WordPair> _suggestions = <WordPair>[];
  18.   final Set<WordPair> _saved = new Set<WordPair>();
  19.   final _biggerFont = const TextStyle(fontSize: 18.0);
  20.  
  21.   Widget _buildSuggestions() {
  22.     return ListView.builder(
  23.       padding: const EdgeInsets.all(22.0),
  24.       itemBuilder: (context, i) {
  25.         if (i.isOdd) return Divider();
  26.  
  27.         final index = i ~/ 2;
  28.         if (index >= _suggestions.length) {
  29.           _suggestions.addAll(generateWordPairs().take(10));
  30.         }
  31.  
  32.         return _buildRow(_suggestions[index]);
  33.       },
  34.     );
  35.   }
  36.  
  37.   Widget _buildRow(WordPair wordPair) {
  38.     final bool alreadySaved = _saved.contains(wordPair);
  39.  
  40.     return ListTile(
  41.       title: Text(
  42.         wordPair.asPascalCase,
  43.         style: _biggerFont
  44.       ),
  45.       trailing: new Icon(
  46.         alreadySaved ? Icons.favorite : Icons.favorite_border,
  47.         color: alreadySaved ? Colors.red : null
  48.       ),
  49.     );
  50.   }
  51.  
  52.   @override
  53.   Widget build(BuildContext context) {
  54.     return Scaffold(
  55.       appBar: AppBar(
  56.         title: Text('Startup Name Generator'),
  57.       ),
  58.       body:_buildSuggestions()
  59.     );
  60.   }
  61. }
  62.  
  63. class RandomWords extends StatefulWidget {
  64.   @override
  65.   RandomWordsState createState() => new RandomWordsState();
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement