首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

联系人字母导航集大成者

背景说明 联系人字母导航条已经出来很多年都交互了,其UI组合无非是悬浮字母列表+侧边栏都字母选择(PinnedHeadList+siderBar)。...要画的好看,主要要解决的问题如下: 画字母 计算整个字母导航条的高度; 计算每个字母的位置 合理设置字母的字号大小 处理触摸事件 计算触摸位置...3.1 画字母 3.1.1 静态设置字母的大小 首先,要确定View的大小,一些开源的实现是将View直接布满整个屏幕(match_parent属性),然后在右侧进行绘制,事件处理在字母区域返回...“W”作为参考字母,计算他的宽和高度。...) gif.gif 字母垂直居中显示,字母大小为属性设置,默认14sp,根据字体大小计算每个字母高度; 凸显放大效果,根据位置计算上下各4个,计算偏移位置和缩放,根据点击位置然后绘制; 整体代码还比较工整

1.5K150

Android系统联系人全特效实现(下),字母表快速滚动

在上一篇文章中,我和大家一起实现了类似于Android系统联系人的分组导航和挤压动画功能,不过既然文章名叫做《Android系统联系人全特效实现》,那么没有快速滚动功能显然是称不上"全"的。...如果还没有看过我上一篇文章,请抓紧去阅读一下 Android系统联系人全特效实现(上),分组导航和挤压动画 。...包括以前老版本的Android联系人中都是使用这种方式来进行快速滚动的。效果如下图所示: ?...; /** * 联系人列表适配器 */ private ContactAdapter adapter; /** * 用于进行字母表分组 */ private AlphabetIndexer...当你的手指在右侧字母表上滑动时,联系人的列表也跟着相应的变动,并在屏幕中央显示一个当前的分组。 现在让我们回数一下,分组导航、挤压动画、字母表快速滚动,Android系统联系人全特效都实现了。

92180
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    可以伸缩的搜索栏,模仿华为应用市场

    影响比较深刻的就有华为应用市场的搜索栏(同样,简书的搜索栏也是类似的)。 而今天,就是带你来实现华为应用市场那样的搜索栏。 我们先放上我们实现的效果图吧: demo效果图 怎么样,想不想学?...首先,在搜索栏还未打开时,先确定半径 R ,然后假设一个变量 offset 用来动态改变搜索栏的宽度。...在调用 invalidate() 进行重绘,达到动态增加搜索栏宽度的效果。反之,关闭搜索栏也是同理的。 那么下面就用代码来实现它咯!...attrs 关于自定义的属性,我们可以想到的有搜索栏的背景颜色、搜索栏的位置(左或右)、搜索栏的状态(打开或关闭)等。具体的可以查看下面的 attrs.xml 。根据英文应该能知道对应属性的作用了。...,然后是搜索栏的图标,最后是搜索栏的提示文字。

    53730

    用 node.js 模仿 Apache 的部分功能

    服务端渲染与客户端渲染之间的区别: 客户端渲染不利于搜索引擎优化 服务端渲染可以被爬虫抓取到,而客户端异步渲染很难被爬虫抓取到(例如:AJAX) 大部分的网站既不是纯异步(客户端),也不是纯服务端渲染出来的...,而是两者结合的 例如:京东的商品列表采用的就是服务端渲染,目的是为了SEO搜索引擎优化,说白了就是为了能够被搜索到,且能被爬虫抓取(搜索引擎本身也是一种爬虫)。...art-template 模板引擎 安装: 在想要安装的目录下打开命令行工具 输入 npm install art-template, 然后它会自动生成 node_modules 目录(前提,系统已经安装了 Node.js...art-template'); 就可以使用了 , 官方文档地址:https://aui.github.io/art-template/zh-cn/docs/index.html Apache 部分功能实现 Node.js...files}} {{ $value }}/ {{/each}} 3、node.js

    76400

    一个电话本中联系人名字搜索高亮的实现

    一个电话本中联系人名字搜索高亮的实现 需求:实现电话本名字搜索功能的高亮实现,其中搜索支持中文、简拼、全拼搜索,对搜索匹配到的名字部分高亮显示。...例如: 名字:张向东 全拼:zhangxiangdong 简拼:zxd 搜索匹配优先规则:中文(直接匹配)、简拼匹配、全拼匹配 关键在全拼匹配上面,比方用户输入gd,则匹配向东两个字,同xiangdong...的匹配项 搜索功能通过数据库的搜索匹配实现,也就是输入是搜索的输入字符串mInputStr和搜索的名字结果列表List  SearchHighLightUtil的构造函数 上代码: 第一版:...*/ private String mInputStr; /* * 输入的搜索结果 */ private List mListResult; /* * 用名字作为关键字...User> listResult){ this.mInputStr = inputStr; this.mListResult = listResult; /* 分析输入的字符串和搜索匹配的结果

    34120
    领券