1. 写在前面

在上篇文章中已经对微信通讯录界面进行了列表部分,包括组头的设置、怎么显示隐藏合并组的代码实现,那么今天就继续来写微信实战项目的通讯录界面最复杂的索引条部分!

2. 页面布局

首先索引条是在列表之上的,也就是布局来说是悬浮的,那么我们可以使用Stack来布局,然后在封装一个索引条IndexBar

3. 索引条封装

索引条是需要改变状态的,索引我们使用StatefulWidget,方便后续的状态的改变,以根据状态的改变来改变列表的显示。索引是由两部分组成的:

  • 指示器:就是拖动索引条,前面的放大器部分,里面显示对应的索引字母。
  • 索引条:显示分组的名称字母,这个要根据鼠标的移动,来改变指示器的位置和显示的文字。

大致的代码布局如下所示:

索引条是悬浮的,所以需要定位它的位置,这里使用Positioned来定位。这里设置索引条的高度是屏幕高的一半,距离屏幕的顶部距离是屏幕高度的八分之一,宽度为 120。

3.1 指示器

指示器这里和索引条是一体的,只是改变一下位置就可以了。

//指示器Container(alignment: Alignment(0,_indicatorY),width: 100,// color: Colors.red,child: _indicatorHidden?null:Stack(alignment: const Alignment(-0.2,0),children: [const Image(image: AssetImage("images/气泡.png"),width: 60,),Text(_indicatorText,style: const TextStyle(fontSize: 18,color: Colors.white),)],),),

这里指示器外面是用Container包裹,里面是使用了Stack来包裹一个放大镜

【Flutter】微信项目实战【07】 通讯录界面搭建(下)相关推荐

  1. Vue整合SpringBoot项目实战之Vue+Element-Ui搭建前端项目

    Vue整合SpringBoot项目实战之Vue+Element-Ui搭建前端项目 源码(欢迎star): 前端项目代码 后端项目代码 系列文章: Vue整合SpringBoot项目实战之后端业务处理 ...

  2. Flutter商城项目实战(商品分类)

    Flutter是Google(全球顶级互联网科技公司)的生的,后台够硬,毫无疑问Flutter即将或已经成为跨平台开发的主流,Flutter野心很大,不仅冲击着原生开发,而且很有可能会烧到Web前端. ...

  3. 【SSH网上商城项目实战】之环境搭建填坑

    此篇主要是记录我在从零开始走一遍倪升武大神的[SSH网上商城项目实战]过程中遇到的一些坑并记录解决方法.关于这个项目,大家可以去倪升武的博客学习了解,SSH网上商城项目实战请戳倪升武的项目实战专题. ...

  4. .net core项目实战之开发环境搭建

    在上一篇[.net core项目实战之回顾总结]主要介绍了项目背景和自己的一些想法,从本篇开始正式叙述整个开发过程,本篇主要介绍一下开发前的环境准备,vs2017和docker的安装与配置 系统要求 ...

  5. Flutter企业级项目实战——博时App

    | 前言 在当前大前端愈演愈烈的情况下,前有大名鼎鼎的QT.Facebook的RN.阿里的Weex,后有不断追赶的Flutter及原生+H5混合开发,大家都想要在跨平台这碗饭上夺取饭碗.在这种趋势下, ...

  6. 未明学院:量化金融项目实战,成为FinTech风口下掌握数据分析技能的复合型人才!

    金融科技(FinTech)的风口下,想进入核心岗位找到自己的机会,在这个风口中起飞,却不懂数据和编程?你正在失去机会-- 1. 金融行业中数据和python技能的重要性 金融行业天然要跟数据打交道,它 ...

  7. 08_EMS项目之需求分析与界面搭建

    文章目录 EMS企业员工管理系统 EMS界面环境搭建 EMS显示已有的员工信息 博文配套视频课程:24小时实现从零到AI人工智能 EMS企业员工管理系统 通过一个系统级别的案例,把之前所学习的知识点条 ...

  8. vue.js+koa2项目实战(四)搭建koa2服务端

    搭建koa2服务端 安装两个版本的koa 一.版本安装 1.安装 koa1 npm install koa -g 注:必须安装到全局 2.安装 koa2 npm install koa@2 -g 二. ...

  9. iWebShop 电商项目实战001----测试环境搭建(上)

    WAMP环境搭建 一.简要说明 WAMP: windows + apache + mysql + php 二.配置清单 Windows 10 专业版 Xampp 7.4.5 iWebshop 5.8 ...

  10. 【SSH网上商城项目实战07】Struts2和Json的整合

    上一节我们完成了DataGrid显示jason数据,但是没有和后台联系在一起,只是单纯地显示了我们自己弄的json数据,这一节我们将json和Struts2整合,打通EasyUI和Struts2之间的 ...

最新文章

  1. 经常可能会用到的【函数节流和函数防抖】记录下,做下区分
  2. 282021年高考成绩查询方法,往年高考成绩怎么查询 查询成绩的方法
  3. JavaScript解析顺序和变量作用域
  4. c++读取图片_Pytorch读取,加载图像数据(一)
  5. 水题:P2799 国王的魔镜
  6. Unity中使用RequireComponent,没有添加上组件
  7. maya如何导出ue4_Maya建模师分享干货的时间到啦,教你用UE4如何导入动画
  8. 【dfs+理解题意+构造】【待重做】codeforces E. Ice cream coloring
  9. android7开发问题,Android开发问题总结(一)
  10. 虚拟化--062 vsphere workstation bios启动
  11. Web API 2 入门——使用Web API与ASP.NET Web窗体(谷歌翻译)
  12. DC、HDC和CDC的区别及MFC常见类的作用
  13. 计算机入门认识图标,初学UI设计如何了解ICON图标的用处
  14. 推荐几款网页幻灯片js库
  15. 网吧服务器维护工具,某某网吧专用维护工具(网吧维护管理助手)V5.1 最新版
  16. 360千兆路由计算机安装方法,千兆路由器怎么安装?
  17. echart获取geoJson格式世界各国地图的资源,世界地图,世界各国分区显示,精确到乡镇一级资源
  18. 获取网页视频,日常下载工具推荐——XDM
  19. Ubuntu 18.04 网口创建网络共享
  20. 微信小程序接入环信客服

热门文章

  1. 在vue 中使用Stylus
  2. [2017.3.29]中国生育腚理不互质
  3. Windows系统下将目录挂载为一个磁盘并分配盘符
  4. 深入解析字符串的比较方法:“==”操作符;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。...
  5. 乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern)
  6. 『原创·翻译』如何阅读论文
  7. 看老友记_马云对话周星驰
  8. .NET中的数据结构——表
  9. DataMining with Sql 2005
  10. 数据分析之 pandas