Android A-Z排序侧边栏

  • 效果
    • Gradle
    • 使用
    • 属性
    • gitHub地址

效果

Gradle

将其添加到存储库末尾的根目录build.gradle 中:

allprojects {repositories {...maven { url 'https://jitpack.io' }}}

添加依赖项

dependencies {implementation 'com.github.cyh120190774:SideBar:1.00'
}

使用

xml

        <com.cyh.sidebarview.SideBarandroid:id="@+id/sb_index"android:layout_width="30dp"android:layout_height="match_parent"android:layout_alignParentRight="true"android:background="@color/white"app:isShowDialog="true"/>

Java

        //SideBar滑动 RecyclerView跟随滑动binding.sbIndex.setOnTouchingLetterChangedListener(new SideBar.OnTouchingLetterChangedListener() {@Overridepublic void onTouchingLetterChanged(String s) {if (adapter.getData().size() < 2) {return;}if (s.equals(binding.sbIndex.getLetters()[0])) {manager.scrollToPositionWithOffset(0, 0);} else if (s.equals(binding.sbIndex.getLetters()[binding.sbIndex.getLetters().length - 1])) {manager.scrollToPositionWithOffset(adapter.getData().size() - 1,0);} else {for (int i = 0; i < mBeans.size(); i++) {if (mBeans.get(i).fisrtSpell.compareToIgnoreCase(s) == 0) {manager.scrollToPositionWithOffset(i, 0);break;}}}}});//RecyclerView滑动 SideBar跟随位置binding.rvArea.addOnScrollListener(new RecyclerView.OnScrollListener() {@Overridepublic void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {super.onScrolled(recyclerView, dx, dy);if (recyclerView.getLayoutManager() instanceof LinearLayoutManager){int pos = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();String str =  ((PhoneAreaAdapter)binding.rvArea.getAdapter()).getData().get(pos).getFisrtSpell();binding.sbIndex.setChooseStr(str);}}});

属性

    <declare-styleable name="SideBar"><attr name="sideTextArray" format="reference" /> <!--sidebar的字符列表--><attr name="sideTextColor" format="color" /> <!--sidebar的字符颜色--><attr name="sideTextSelectColor" format="color" /> <!--sidebar的字符选中时的颜色--><attr name="sideTextSize" format="dimension" /> <!--sidebar的字符大小--><attr name="sideBackground" format="reference|color" /> <!--sidebar的背景颜色--><attr name="isShowDialog" format = "boolean" /><!--是否显示弹窗--><attr name="dialogTextColor" format="color" /> <!--选中弹窗字符颜色--><attr name="dialogTextSize" format="dimension" /> <!--选中弹窗字符大小--><attr name="dialogTextBackground" format="reference|color" /> <!--选中弹窗字符背景颜色--><attr name="dialogTextBackgroundWidth" format="dimension" /> <!--选中弹窗字符背景宽度--><attr name="dialogTextBackgroundHeight" format="dimension" /> <!--选中弹窗字符背景高度--></declare-styleable>

gitHub地址

Android A-Z排序侧边栏相关推荐

  1. android 通讯录字母排序,Android仿微信联系人字母排序效果

    本文实例为大家分享了Android联系人字母排序的具体代码,供大家参考,具体内容如下 实现思路:首先说下布局,整个是一个相对布局,最下面是一个listview,listview上面是一个自定义的vie ...

  2. Android表格拖拽排序,Android 拖拽排序控件 DragGridView

    Android 拖拽排序控件 DragGridView Android 开发中,我们经常会遇到条目拖拽排序的需求,特别是在新闻类应用中就更普遍了.其实,我们在网上可以搜到许多关于拖拽排序的自定义控件, ...

  3. android 联系人 中文 排序,Android中文联系人排序及检索补丁的原理

    Android中文联系人排序及检索补丁的原理(090819更新) 2009年4月26日,更新了源码和相关文件 很久以前做了这个补丁,有幸的是朋友们都还算喜爱它,没白费功夫.不少朋友来信问它的原理,现在 ...

  4. android a z 快速定位,快速集成android实现listview的字母A-Z排序,界面侧边字母索引...

    Android手机字母A-Z排序侧边索引是非常常见的功能,在此提供快速集成框架.教你用Android studio工具一分钟搞定这个效果. 实现效果: 以及点击F跳转效果 第一步库包导入实现拼音检索功 ...

  5. android A~Z通讯录排序索引

    1.:recyclerview依赖 这个v7:28.0.0是根据自己android studio 依赖中: implementation 'com.android.support:appcompat- ...

  6. Android获取手机联系人匹配用户表并按字母A Z排序展示

    1.前言 最近在做公司项目的时候遇到一个添加手机联系人的需求,主要有以下几个功能点: 读取联系人:读取用户手机上的通讯录里的联系人列表 好友排序:按照拼音顺序对好友进行排序,兼容英文数字符号等 字母索 ...

  7. android view z总结的好帖子

    http://www.cnblogs.com/hawkon/p/3593709.html 转自:http://blog.csdn.net/shulianghan/article/details/180 ...

  8. 安卓 仿联系人索引列表 A到Z排序查询

    本文章是看了xiaanming大哥的文章自己笔记整理的,自己加了些更多注释和自己的理解. 原文:http://blog.csdn.net/xiaanming/article/details/12684 ...

  9. Android窗口Z轴计算以及WindowState排列规则

    本篇基于Android Q代码,建议先看从一个Dialog的创建看Android的窗口机制(上篇)和从一个Dialog的创建看Android的窗口机制(下篇)大致了解窗口的添加机制再看本篇 本篇主要分 ...

最新文章

  1. 记录下,我们平时开发当中不得不知道的HTTP状态码
  2. 大数据工程师手册:全面系统的掌握必备知识与工具
  3. Tornado 学习笔记
  4. https的那些事儿
  5. 【Spring注解系列05】@Import注入原理
  6. api报错 javaee maven_JavaEE关于Maven的配置与学习
  7. 主机关机后第二天就无法开机_工控机几种常见的在开机或关机后不能正常使用的故障处理方法汇总...
  8. mybatis mysql 事务处理_详解Java的MyBatis框架中的事务处理
  9. 杂志订阅管理系统c语言实训报告,C语言程序设计报告—杂志订阅管理软件、、.doc...
  10. 程序人生:软件测试工程师,如何从手工测试转成自动化测试?这可能是每个测试要走的路...
  11. SQL-26 (二次分组)汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no、dept_name、其当前员工所有的title以及该类型title对应的数目count...
  12. ISO /TS 22163:2017轨道交通行业质量管理体系简介及相关标准资料
  13. Python人脸识别库的安装
  14. python爬取b站up主粉丝信息_使用Python爬取B站数据
  15. 天玑9200领跑背后,高端芯片掀起蝴蝶效应
  16. Charles设置代理之后,为什么电脑和手机都不能上网
  17. 大厂的人自带光环,但光环是从哪儿来的呢?
  18. 具有引导性的移动应用界面设计模式
  19. Flutter | Sliver 系列
  20. 选型宝分享上市公司女CIO亲身讲述BPM系统选型历程

热门文章

  1. 电商平台后台管理系统--->项目前期准备(需求分析、系统设计、环境搭建与配置文件)
  2. ACM在线模板(收藏贴)
  3. 2022-02-08 Vue3.0 中的 Teleport 和 Suspense
  4. 数据安全能力成熟度模型DSMM----八、通用安全
  5. [深度学习] loss=inf
  6. SVMtrain的参数c和g的优化
  7. 【已解决】moviepy视频剪辑TypeError: must be real number, not NoneType问题
  8. 口腔ct重建服务器原理,牙科CT是什么?牙科CT的原理及优势介绍
  9. java token使用方式_使用 Java 和 web3j 进行 Token 开发[概述][译]
  10. CephFS文件存储系统