最近需要实现一个筛选的功能。但是在网上找了半天都写得特别乱,要不就是收费,今天做一个。实现效果图如下。

点击按钮直接弹出。可以放在任何控件下面。下面是使用代码:

首先需要添加依赖:

在build.gradle中添加:

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

在app。gradle中添加:

dependencies {implementation 'com.github.zhujiang521:Filter:Tag'}

添加好依赖之后直接初始化控件即可开始使用,下面是添加数据及使用方法(文末附有项目的Github):

private void initView() {tvFlow = findViewById(R.id.tv_flow);tvFlow.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {flowPopWindow = new FlowPopWindow(MainActivity.this, dictList);flowPopWindow.showAsDropDown(tvFlow);flowPopWindow.setOnConfirmClickListener(new FlowPopWindow.OnConfirmClickListener() {@Overridepublic void onConfirmClick() {StringBuilder sb = new StringBuilder();for (FiltrateBean fb : dictList) {List<FiltrateBean.Children> cdList = fb.getChildren();for (int x = 0; x < cdList.size(); x++) {FiltrateBean.Children children = cdList.get(x);if (children.isSelected())sb.append(fb.getTypeName() + ":" + children.getValue() + ";");}}if (!TextUtils.isEmpty(sb.toString()))Toast.makeText(MainActivity.this, sb.toString(), Toast.LENGTH_LONG).show();}});}});}/*** 添加筛选框的数据*/private void initParam() {String[] sexs = {"本地", "在线"};String[] colors = {"新建", "原有", "改造"};String[] company = {"交流20kv", "交流10kv", "交流5kv"};FiltrateBean fb1 = new FiltrateBean();fb1.setTypeName("获取方式");List<FiltrateBean.Children> childrenList = new ArrayList<>();for (String sex : sexs) {FiltrateBean.Children cd = new FiltrateBean.Children();cd.setValue(sex);childrenList.add(cd);}fb1.setChildren(childrenList);FiltrateBean fb2 = new FiltrateBean();fb2.setTypeName("建设类型");List<FiltrateBean.Children> childrenList2 = new ArrayList<>();for (String color : colors) {FiltrateBean.Children cd = new FiltrateBean.Children();cd.setValue(color);childrenList2.add(cd);}fb2.setChildren(childrenList2);FiltrateBean fb3 = new FiltrateBean();fb3.setTypeName("电压等级");List<FiltrateBean.Children> childrenList3 = new ArrayList<>();for (String aCompany : company) {FiltrateBean.Children cd = new FiltrateBean.Children();cd.setValue(aCompany);childrenList3.add(cd);}fb3.setChildren(childrenList3);dictList.add(fb1);dictList.add(fb2);dictList.add(fb3);}

GitHub

安卓高仿京东淘宝的筛选功能,全网最简单方便相关推荐

  1. 菜鸟窝-仿京东淘宝项目学习笔记(二)ToolBar的基本使用

    本篇知识点均来自于菜鸟窝-仿京东淘宝实战项目视频中 今天继续仿京东淘宝项目的学习,第二天,学习ToolBar的基本使用,本篇记录视频中一些重要的笔记 笔记一:ToolBar的一些重要属性 xml st ...

  2. 微信小程序仿京东淘宝商品排序

    微信小程序仿京东淘宝商品排序 效果图如下所示 仿京东微信小程序视频请加QQ:1010753897 下载地址:https://download.csdn.net/download/qq_43764578 ...

  3. 仿京东淘宝等首页广告弹窗广告 dialog

    记录贴 防止以后忘记. 上图 1.dialog布局 图片随便找的 <?xml version="1.0" encoding="utf-8"?> &l ...

  4. Android 仿京东淘宝 商品详情页 商品图片效果

    最近重构商品,产品要求,按照淘宝京东来.... 成品如图这个效果 思路就是监听外边ScrollView的滑动监听,然后给上边图片设置margin,二话不说上代码 简单的界面布局 <?xml ve ...

  5. Android 仿京东淘宝拼多多的商品分类,双列表联动,RecyclerView嵌套

    淘宝京东的相对简单很多,两个RecyclerView就可实现了. 现在要做的是右边滑动的时候左边跟着联动,如下图: 思路:左右肯定都是RecyclerView了,至于中间的图片嘛当然也是Recycle ...

  6. Android 仿京东淘宝多规格选择

    上图直接点,下次在修改理论,因为要下班了 这是淘宝的规格选择,我随便选择了一个,将就着看吧 然后再来看看我的效果 这个我是在CSDN上看的一篇文章 我把地址贴出来这是原文地址我是在他的基础改的 我做了 ...

  7. 仿京东淘宝放大镜特效 jqzoom.js

    效果图如下: HTML 文本源码: 1 <!DOCTYPE html> 2 <htmllang="en"> 3 <head> 4 <met ...

  8. JQ或JS仿京东淘宝属性规格SKU样式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. 山寨风,高仿QQ附近的人筛选功能的滑动选择列表来袭!

    今天在准备新项目的界面,偶然翻到了QQ附近的人那个筛选功能,嗯,觉得效果还不错,效果大概是这样子的.QQ的原图我就不上了,我就上我做的效果图. 觉得so easy是吧,但是我整整做了4个多小时,个多小 ...

最新文章

  1. kubelet配置cni插件_从零开始入门 K8s | 理解 CNI 和 CNI 插件
  2. 2020年春天故事之巧遇史上最奇葩SAP用户
  3. 1分钱,工程师可以做什么?
  4. 中输入learn_Scikit-learn新版本发布,一行代码秒升级
  5. 今天换了ubuntu10.04
  6. 项目一计算机基础知识考核题,2013计算机基础知识试题及答案
  7. 想做点副业,一天200-300就行
  8. 位置度标注方法图解_追踪主力-散户操盘实战图解:操盘手法分析
  9. php base64_decode 图片,php读取和保存base64编码图片
  10. 三级分类用sql语句怎么写(多级分类的写法)
  11. 数据结构1800题-错题集-第六章
  12. DXGI抓屏优化扩展:鼠标功能+数据获取+多显示器捕获(屏幕共享源码)
  13. UI兼容性测试——一机多控之百度Hydra工具在移动端UI兼容性测试上的高效应用
  14. python的matplotlib库
  15. markdown编辑器——文字颜色、大小、字体、背景色、图片大小与居中对齐的设置方法
  16. Excel-REPT重复处理字符
  17. FZU 2139 久违的月赛之二
  18. sqlserver2012 查询远程数据库
  19. C#串口通信从入门到精通(3)——虚拟串口工具的使用
  20. 像搭积木一样建设的校园网

热门文章

  1. 一般哪些原因会造成硬盘损坏呢
  2. python解压rar文件
  3. MySQL之TPC压缩
  4. TPC-H和TPC-DS
  5. TOP 1比不加TOP慢的疑惑
  6. python短信验证码_Python如何实现手机验证码
  7. AD软件生成gerb文件方法参考
  8. 真正的能理解CSS中的line-height,height与line-height
  9. 离职后竟半夜偷溜回办公室写代码?为自由软件而战斗的程序员
  10. 计算机快速切换快捷键,窗口切换快捷键,详细教您电脑窗口切换小技巧是什么...