背景说明 联系人字母导航条已经出来很多年都交互了,其UI组合无非是悬浮字母列表+侧边栏都字母选择(PinnedHeadList+siderBar)。...要画的好看,主要要解决的问题如下: 画字母 计算整个字母导航条的高度; 计算每个字母的位置 合理设置字母的字号大小 处理触摸事件 计算触摸位置...3.1 画字母 3.1.1 静态设置字母的大小 首先,要确定View的大小,一些开源的实现是将View直接布满整个屏幕(match_parent属性),然后在右侧进行绘制,事件处理在字母区域返回...“W”作为参考字母,计算他的宽和高度。...) gif.gif 字母垂直居中显示,字母大小为属性设置,默认14sp,根据字体大小计算每个字母高度; 凸显放大效果,根据位置计算上下各4个,计算偏移位置和缩放,根据点击位置然后绘制; 整体代码还比较工整
在上一篇文章中,我和大家一起实现了类似于Android系统联系人的分组导航和挤压动画功能,不过既然文章名叫做《Android系统联系人全特效实现》,那么没有快速滚动功能显然是称不上"全"的。...如果还没有看过我上一篇文章,请抓紧去阅读一下 Android系统联系人全特效实现(上),分组导航和挤压动画 。...包括以前老版本的Android联系人中都是使用这种方式来进行快速滚动的。效果如下图所示: ?...; /** * 联系人列表适配器 */ private ContactAdapter adapter; /** * 用于进行字母表分组 */ private AlphabetIndexer...当你的手指在右侧字母表上滑动时,联系人的列表也跟着相应的变动,并在屏幕中央显示一个当前的分组。 现在让我们回数一下,分组导航、挤压动画、字母表快速滚动,Android系统联系人全特效都实现了。
影响比较深刻的就有华为应用市场的搜索栏(同样,简书的搜索栏也是类似的)。 而今天,就是带你来实现华为应用市场那样的搜索栏。 我们先放上我们实现的效果图吧: demo效果图 怎么样,想不想学?...首先,在搜索栏还未打开时,先确定半径 R ,然后假设一个变量 offset 用来动态改变搜索栏的宽度。...在调用 invalidate() 进行重绘,达到动态增加搜索栏宽度的效果。反之,关闭搜索栏也是同理的。 那么下面就用代码来实现它咯!...attrs 关于自定义的属性,我们可以想到的有搜索栏的背景颜色、搜索栏的位置(左或右)、搜索栏的状态(打开或关闭)等。具体的可以查看下面的 attrs.xml 。根据英文应该能知道对应属性的作用了。...,然后是搜索栏的图标,最后是搜索栏的提示文字。
java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。List 的具体实现包括 ArrayList 和 Vec...
概述 本文讲述如何在前端实现城市首字母导航的效果。...map.getView().setZoom(8); }); } } } }) } //汉字拼音首字母列表...19968) return ch; //dealWithOthers(ch); //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母
这里我们就用js模拟一下qq消息一样的弹出窗。 直接贴代码: <!
老铁们,还记得如何对原生ajax进行封装吗?注释较少,看看是否还能看的明白? 封装如下: function ajax(obj){ //指定提交方式的默认...
服务端渲染与客户端渲染之间的区别: 客户端渲染不利于搜索引擎优化 服务端渲染可以被爬虫抓取到,而客户端异步渲染很难被爬虫抓取到(例如: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
JS代码如下: var color = new Array('#fff', '#ff0', '#f00', '#000', '#00f...} lastX = x; lastY = y; }, false); } 有兴趣的童鞋可以更多的扩展一下,通过js...下面我再分享另外一段js实现的方法,大家可以对比一下: 用javascript实现手机摇一摇 if(navigator.userAgent.indexOf('iPhone')>-1) { var
indexBar 项目开发中经常会使用到indexBar点击索引栏时,会自动跳转到对应的IndexAnchor锚点位置,完成快速检索功能 需要配合该组建使用的是把你的列表数据转换成对应的汉字的首字母完成该功能
一个电话本中联系人名字搜索高亮的实现 需求:实现电话本名字搜索功能的高亮实现,其中搜索支持中文、简拼、全拼搜索,对搜索匹配到的名字部分高亮显示。...例如: 名字:张向东 全拼:zhangxiangdong 简拼:zxd 搜索匹配优先规则:中文(直接匹配)、简拼匹配、全拼匹配 关键在全拼匹配上面,比方用户输入gd,则匹配向东两个字,同xiangdong...的匹配项 搜索功能通过数据库的搜索匹配实现,也就是输入是搜索的输入字符串mInputStr和搜索的名字结果列表List SearchHighLightUtil的构造函数 上代码: 第一版:...*/ private String mInputStr; /* * 输入的搜索结果 */ private List mListResult; /* * 用名字作为关键字...User> listResult){ this.mInputStr = inputStr; this.mListResult = listResult; /* 分析输入的字符串和搜索匹配的结果
题目 思路 用DFS挨个搜索,把几个数字代表的字母存放到一个数组里,数组前两个为空让数组的值对应2~9。 DFS中传入两个参数:第一个每次递归传递的的字符串,第二个n表示当前从第几个数字里取值。...- 48);("23"第一次递归m = 2,第二次m = 3,对应arr中的字符串) 根据题意结果中每个字符串字符个数与digits的长度相同,所以if (n == dig.size())表示这一串搜索完成
Unicode编码:小写字母a-z的code为97 - 122,大写字母A-Z的code为65 - 90 统计大写字母的个数 var str ="abcABCadDGSDVBSDVDSVdavver"...str[i].charCodeAt() if(char>=65&&char<=90){ count++ } } console.log(count+'个') //大写字母共...15个 小写字母的个数 var str ="abcABCadDGSDVBSDVDSVdavver" var count=0 for(let i = 0;i<str.length;i++){ var...str[i].charCodeAt() if(char>=97&&char<=122){ count++ } } console.log(count+'个') //小写字母共
最近使用电脑时遇到的问题: 使用spotlight进行搜索时,只要输入字母超过一定个数(在我的Mac上是3个),spotlight就闪退了。...谷歌搜索得到大部分解决方案是在系统自带词典的偏好设置里取消外部字典的勾选(如https://placeless.net/2017/09/28/spotlight-search-crash-on-high-sierra.html...thread/8546951)可能是近期Safari的升级所致,需要在spotlight的设置里取消书签与历史记录(Bookmarks & History)的勾选,即系统偏好设置-Spotlight-搜索结果
//生成大写字母 A的Unicode值为65 function generateBig_1(){ var str = []; for(var i=65;i<91;i++){...str.push(String.fromCharCode(i)); } return str; } //生成大写字母 a的Unicode值为97 function generateSmall
英文字符串首字母大写 /** * 方法一:js字符串切割 * @param {*} str */ function firstToUpper1(str...return str.trim().toLowerCase().replace(str[0], str[0].toUpperCase()); } /** * 方法二:js...return $1.toUpperCase() + $2.toLowerCase(); }); } /** * 方法三:js
input 框丢失焦点或者回车时触发,通过 axios 发送post请求 向api获取数据,后填充到下方展示框中。
document.getElementById('name'); // 姓名 var oSearchBtn = document.getElementById('search'); // 搜索..." name="name" id="name" value="张三" /> 搜索结果高亮显示
-- 搜索框 --> <input class="form-control mr-sm-2" type="text"
逻辑介绍: 1、表单获取焦点时,显示搜索建议框 2、输入内容时,请求后台接口,并将返回的数据展示在搜索建议框内 3、表单获取焦点情况下,按键盘上下箭头可实现搜索列表项的切换, 按回车可以选择当前激活的选项并获取当前选项的数据
领取专属 10元无门槛券
手把手带您无忧上云