flutter 实战天猫首页案例_天猫首页实战-程序员宅基地

技术标签: fultter  Flutter  

效果图:

在这里插入图片描述
GitHub Flutter学习源码:https://github.com/shunyue1320/flutter-study

appbar代码:

appBar: AppBar(
 centerTitle: true,
 //elevation: 0,  //bar底部阴影
 leading: IconButton(
   highlightColor: Colors.transparent, //高亮透明
   splashColor: Colors.transparent, //水波纹透明
   icon: Icon(Icons.list),
   onPressed: () {
    
     //打开抽屉
     _globalKey.currentState.openDrawer();
   }
 ),
 title: Text('天猫TMALL'),
 actions: <Widget>[
   //登入按钮实现方法一
   // FlatButton(
   //   textColor: Colors.white //文字颜色也可以在这里设置
   //   onPressed: () {
    
   //     _globalKey.currentState.openEndDrawer();
   //   },
   //   child: Text(('登录'), style: TextStyle(color: Colors.white))
   // ),
   //登入按钮实现方法二
   //InkWell给child元素绑定点击事件
   InkWell(
     onTap: () {
    
       _globalKey.currentState.openEndDrawer();
     },
     child: Container(
       padding: EdgeInsets.only(right: 20),
       child: Row(
         children: <Widget>[Text('登录')],
       )
     )
   )
 ],
 bottom: PreferredSize(
   preferredSize: Size.fromHeight(50),
   child: Container(
     height: 50,
     padding: EdgeInsets.all(6),
     child: InkWell(
       onTap: () {
    
         //点击搜索触发的点击事件
         Navigator.of(context).push(
           MaterialPageRoute(builder: (BuildContext context) {
    
             return searchPage();
           })
         );
       },
       child: Container(
         color: Colors.white,
         child: Row(
           //mainAxisAlignment: MainAxisAlignment.center, //水平居中
           children: <Widget>[
             SizedBox(width: 10),  //占位标签
             Icon(Icons.search, color: Colors.grey),
             SizedBox(width: 10),  //占位标签
             Text('搜索商品/品牌', style: TextStyle(color: Colors.grey))
           ],
         ),
       ),
     )
   ),
 ),
),
//drawer左边抽屉
drawer: Drawer(),
//drawer右边抽屉
endDrawer: Drawer(),



//模拟跳转的搜索页面
class searchPage extends StatelessWidget {
    
  @override
  Widget build(BuildContext context) {
    
    return Scaffold(
      appBar: AppBar(
        centerTitle: true,
        title: Text('搜索界面')
      ),
       body: Text('假装我是搜索界面的内容'),
    );
  }
}

轮播图代码:

AspectRatio(
  aspectRatio: 16 / 8,
  child: Container(
    // color: Colors.blue,
    child: PageView(
      onPageChanged: (int index) {
    
        //轮播图点击事件
        print('$index');
      },
      children: _indexBanner.map((item) {
    
        return Image.network('${item}'); //这里是图片地址
      }).toList()
    )
  ),
),

//数据格式
List<String> _indexBanner = [
   "http://1.jpg",
   ...
]

网格代码:

Container(
 color: Colors.white60,
 height: 168,
 //网格布局
 child: GridView.count(
   crossAxisCount: 5,
   children: _indexCat.map((item) {
    
     return Container(
       //网格边框
       // decoration: BoxDecoration(
       //   border: Border.all(color: Colors.grey)
       // ),
       child: Column(
         //垂直居中
         mainAxisAlignment: MainAxisAlignment.center,
         children: <Widget>[
           //圆形图片
           ClipOval(
             child: Image.network('${item['pic']}', width: 50, height: 50),
           ),
           Text('${item['con']}', style: TextStyle(fontSize: 12))
         ],
       ),
     );
   }).toList(),
 )
),

//数据格式
 List<Map> _indexCat = [
   {
    'pic': "https://111.png", 'con': "1分夺宝"},
   ...
]
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41614928/article/details/105933171

智能推荐

springMVC中文乱码_spring jdbc中文乱码-程序员宅基地

文章浏览阅读111次。一、页面编码&lt;%@ page contentType="text/html;charset=UTF-8" language="java" %&gt;&lt;meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/&gt; 二、URL中的乱码  改tomcat中server.xml中Connector_spring jdbc中文乱码

2021-06-09 Linux INIT_DELAYED_WORK schedule_work 延时队列使用学习-程序员宅基地

文章浏览阅读3.9k次,点赞5次,收藏13次。https://blog.csdn.net/qq_31339221/article/details/105057978https://blog.csdn.net/qq_31339221/article/details/105057978_init_delayed_work

linux设置双屏拼接_双屏、3屏拼接——A卡、N卡——Windows、Linux-程序员宅基地

文章浏览阅读2k次。“折腾是一种生活态度”。买了个显卡,在公司折腾了下双屏和3屏,记录一下。3个20英寸的显示器,分辨率都是1600x900。普通双屏:1个屏幕有任务栏,另一个没有任务栏,分辨率单独设置,壁纸重复显示一张,分辨率都是1600x900。双屏水平拼接:通过显卡驱动设置,操作系统检测到1个显示器,分辨率为3200x900,1个超长任务栏横跨2个屏幕,1个超长壁纸横跨2个屏幕。3屏水平拼接:分辨率为4800x..._横屏双屏壁纸拼接

反射之getDeclaredMethod和getMethod的区别以及一些小技巧_反射getdeclaredmethod-程序员宅基地

文章浏览阅读6.8k次,点赞2次,收藏8次。区别getDeclaredMethod:获取当前类的所有声明的方法,包括public、protected和private修饰的方法。需要注意的是,这些方法一定是在当前类中声明的,从父类中继承的不算,实现接口的方法由于有声明所以包括在内。getMethod:获取当前类和父类的所有public的方法。这里的父类,指的是继承层次中的所有父类。比如说,A继承B,B继承C,那么B和C都属于A的父类。..._反射getdeclaredmethod

计算机java毕业设计 JavaWeb的图书查询管理系统_怎么描述java项目中图书管理页面的内容-程序员宅基地

文章浏览阅读415次。 Hi,各位同学好呀,这里是L学长!今天向大家分享一个今年(2022)最新完成的毕业设计项目作品基于JavaWeb的图书查询管理系统 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分)难度系数:3分工作量:3分创新点:3分。_怎么描述java项目中图书管理页面的内容

html5安卓机判断刘海屏,Android判断是否为刘海屏-程序员宅基地

文章浏览阅读1.5k次。主要总结主流品牌小米、华为、oppo、vivo的刘海屏判断。在某些特殊页面需要适配刘海屏时,可以用以下方法判断。或者判断屏幕比例是否大于2。/*** 小米刘海屏判断.*/public static int getInt(String key,Activity activity) {int result = 0;if (isXiaomi()){try {ClassLoader classLoader..._h5中如何判断根据手机有没有刘海屏灵动岛

随便推点

Git 生成SSH Key_git publikey生成-程序员宅基地

文章浏览阅读1.8w次。通过命令:$ ssh-keygen -t rsa -C "[email protected]" 然后回车 3,打开 Github-settings-SSH and GPG keys4,点击App Key5,创建仓库 在Repository name填入testgit,其他保持默认设置,点击“Create repository”按钮,..._git publikey生成

itextpdf生成pdf中文乱码 (乱码中挣扎的自述)_acrofields form = stamper.getacrofields();-程序员宅基地

文章浏览阅读1.4w次,点赞6次,收藏8次。生成pdf文件的方法有很多,网上也有很多的介绍,本文主要主要是讲生成pdf乱码的问题,而且还十分诡异,具体生成pdf的步骤同学们可以自己百度,也可以参考如下链接:https://www.cnblogs.com/LUA123/p/5108007.html 最开始我也是参考这篇文章来制作pdf的,但是坑爹的步骤开始了,一开始就是中文不显示的问题,然后我就想到了是不是字体什么的不支持的问题,..._acrofields form = stamper.getacrofields();

J.U.C之AQS源码解读以及ReentrantLock源码解读_reentrantlock 源码-程序员宅基地

文章浏览阅读1k次。文章目录前言AQS重要变量unsafeReentrantLocklock方法加锁原理公平锁非公平锁公平锁跟非公平锁的代码区别参考博客前言像我大佬烟说过:面试的时候颜值可以提高分数,没有颜值的话就需要会点J.U.C。人丑就要多读书,没错说的就是我。AQS是AbstractQueuedSynchronizer缩写,作者是@author Doug Lea并发大神,致敬一哈。J.U.C很多东..._reentrantlock 源码

测序总结,高通量测序名词-程序员宅基地

文章浏览阅读573次。主要来自 :http://mp.weixin.qq.com/s/iTnsYajtHsbieGILGpUYgQ测序的黄金标准:一代测序了,故称之为黄金测序。高通量测序最近这几年很火越来越火,但是世界上更多的还是一帮天天做分子克隆、养细胞、养细菌、杂蛋白的生物学家,究其原因Sanger测序还是测序届的金标准,由于精确度高于2、3代测序且保持大白菜价格使之地位稳固。应用范围:De Novo测..._一个unigene在可以被注释到几个通路中吗

WinForm界面布局空间---WeifenLuo.WinformUI.Docking-程序员宅基地

文章浏览阅读1.1k次。最近在学习Sharpdevelop的过程中,看到了使用的很好的winform页面布局控件,感觉非常的不错。实现效果如下所示:这里我就简单的下一下他的实现步骤,当中我也看考了其他人的博客。1)创建一个windowsForm的应用程序2)添加引用:WeifenLuo.WinFormsUI.Docking他是一个DLL文件,可以自行从网络上下载。3)设置Form1窗体作为父窗..._weifenluo.winformui.docking

操作系统作业调度实验报告-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏62次。一、实验名称作业调度算法实验。二、实验目标已知n个作业的进入时间和估计运行时间(以分钟计)(1)单道环境下,分别用先来先服务调度算法、短作业优先调度算法、响应比高者优先调度算法,求出批作业的平均周转时间和带权平均周转时间;在多道环境(如2道)下,求出这些作业的平均周转时间和带权平均周转时间(2)就同一批次作业,分别讨论这些算法的优劣;(3)衡量同一调度算法对不同作业流的性能_操作系统作业调度实验报告

推荐文章

热门文章

相关标签