• 写一个flutter程序2


    需求

    • 完成一个简单的移动应用程序,功能是:为一个创业公司生成建议的名称。用户可以选择和取消选择的名称、保存(收藏)喜欢的名称。
    • 该代码一次生成十个名称,当用户滚动时,会生成一新批名称。
    • 用户可以点击导航栏右边的列表图标,以打开到仅列出收藏名称的新页面(route)。

    这一部分,我们来写一下交互和打开新的页面

    向列表里添加图标

    将lib/main.dart的代码替换

    import 'package:flutter/material.dart';
    import 'package:english_words/english_words.dart';
    
    void main(List args) {
      runApp(const MyApp());  
    }
    
    class MyApp extends StatelessWidget{
      const MyApp({super.key});
      
      @override
      Widget build(BuildContext context){
        return MaterialApp(
          title: 'Startup Name Generator',
          home: Scaffold(
            appBar: AppBar(
              title: const Text('Startup Name Generator'),
              ),
              body: Center(
                child: RandomWords(),
              ),
            ),
        );
      }
    }
    
    class RandomWords  extends StatefulWidget {
      const RandomWords({super.key});
    
      @override
      State createState() => _RandomWordsState();
    }
    
    class _RandomWordsState extends State {
      //保存建议的单词对
      final List _suggesttions = []; 
      // 这个集合存储用户喜欢的单词对。Set中不允许重复的值
      final Set _saved = new Set();
      final _biggerFont = const TextStyle(fontSize: 18);
      @override
      Widget build(BuildContext context) {
        return ListView.builder(
          padding: const EdgeInsets.all(16.0),
          itemBuilder: (context,i) {
            if(i.isOdd) return const Divider();
            final index = i~/2;
            if(index >= _suggesttions.length){
              _suggesttions.addAll(generateWordPairs().take(10));
            }
            return _buildRow(_suggesttions[index]);
          },
        );
      }
      Widget _buildRow(WordPair pair){
        final bool alreadySaved &#
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
  • 相关阅读:
    腾讯云服务器如何手动安装node.js环境?
    Dreamweaver网页设计与制作100例——HTML5期末考核大作业——票务网站整套网页
    vue+element ui读取excel文件
    windows driver开发和双机调试环境搭建
    Vue ElementUI 修改消息提示框样式—messageBox 的大小
    Zotero(2)---使用Sci-hub插件下载文献
    【算法】二分查找-20231122
    PG::Potato
    【STM32】定时器与PWM的LED控制
    OutOfMemoryError和StackOverflowError异常实战
  • 原文地址:https://blog.csdn.net/LeMark2333/article/details/128178403