基于 Popupwindow 的下拉筛选控件

功能

区分

支持区域二级联动选择

FilterTabConfig.FILTER_TYPE_AREA

支持单行 List 样式选择

FilterTabConfig.FILTER_TYPE_SINGLE_SELECT

支持带 EditText 的单行选择

FilterTabConfig.FILTER_TYPE_PRICE

支持多类型选择

FilterTabConfig.FILTER_TYPE_MUL_SELECT

支持 Grid 样式多选

FilterTabConfig.FILTER_TYPE_SINGLE_GIRD

目前只支持以上 5 种类型的 Popupwindow 样式,可以自由组合

如何使用

Gradle

Add it in your root build.gradle at the end of repositories:allprojects {

repositories {

...

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

}

}

Add the dependency

```

dependencies {

implementation 'com.github.ltym2016:FilterTabView:1.2.0'

}

## Maven

com.github.ltym2016

FilterTabView

1.1.5

## XML

自定义属性|说明

---|---

tab_arrow_select_color | 筛选 Tab 选择的图片

tab_arrow_unselect_color|筛选 Tab 选择的图片

tab_text_style | 选中状态是否为粗体 0 为否 1 为是 默认为 0

color_main | 主题色

btn_stroke_select_color| 选中 button 边框颜色

btn_stroke_unselect_color|未选中 button 边框颜色

btn_solid_select_color |选中 button 填充颜色

btn_solid_unselect_color| 未选中 button 填充颜色

btn_corner_radius | button 圆角大小

btn_text_select_color| 选中字体颜色

btn_text_unselect_color| 未选中字体颜色

column_num |grid 样式下的列数

## Java

FilterInfoBean bean1 = new FilterInfoBean("区域", FilterTabConfig.FILTER_TYPE_AREA, filterEntity.getArea());

FilterInfoBean bean2 = new FilterInfoBean("总价", FilterTabConfig.FILTER_TYPE_PRICE, filterEntity.getPrice());

FilterInfoBean bean3 = new FilterInfoBean("户型", FilterTabConfig.FILTER_TYPE_SINGLE_SELECT, filterEntity.getHouseType());

FilterInfoBean bean4 = new FilterInfoBean("筛选", FilterTabConfig.FILTER_TYPE_MUL_SELECT, filterEntity.getMulSelect());

ftb_filter.addFilterItem(bean1.getTabName(), bean1.getFilterData(), bean1.getPopupType(), 0);

ftb_filter.addFilterItem(bean2.getTabName(), bean2.getFilterData(), bean2.getPopupType(), 1);

ftb_filter.addFilterItem(bean3.getTabName(), bean3.getFilterData(), bean3.getPopupType(), 2);

ftb_filter.addFilterItem(bean4.getTabName(), bean4.getFilterData(), bean4.getPopupType(), 3);

- javabean 要继承 BaseFilterBean,重写里面的方法

public class FilterAreaEntity extends BaseFilterBean {

....

}

- 需要用到的 Activity 或者 fragment 里面实现 OnSelectResultListener 这个接口

ftb_filter.setOnSelectResultListener(new OnSelectResultListener() {

@Override

public void onSelectResult(FilterResultBean resultBean) {

// 接受点击的返回值

}

});

- 控件调用之前最好初始化一下,避免加载失败重新加载数据是出现重复的问题。

ftb_filter.removeViews();

- OnSelectFilterNameListener 实现这个接口可以拿到选择后对应的 Tab 名称

ftb_filter.setOnSelectFilterNameListener(new OnSelectFilterNameListener() {

@Override

public void onSelectFilterName(String name, int popupindex) {

// name:tab 名称 popupindex:对应的 popup 的位置

}

});

```

OnPopupDismissListener Popupwindow 消失监听

android 商品筛选view,FilterTabView 基于 Popupwindow 实现的筛选房源信息等相关的控件,可以自由排序 @codeKK Android开源站...相关推荐

  1. android 价格排序筛选页面,Android应用开发之基于Popupwindow实现的筛选房源信息等相关的可自由排序控件...

    本文将带你了解Android应用开发Android开发基于Popupwindow实现的筛选房源信息等相关的可自由排序控件,希望本文对大家学Android有所帮助. 功能 区分 支持区域二级选择     ...

  2. Android入门到精通|安卓/Android开发零基础系列Ⅱ【职坐标】-学习笔记(1)-- 常用控件及资源介绍

    前言 为了巩固Android基础知识,回顾一下学习内容,才有此学习笔记. IDE Androdi Studio 4 + Genymotion 创建项目 修改项目的 build.gradle,添加国内镜 ...

  3. 最简单也最难——如何获取到Android控件的高度,获取android控件

    最简单也最难--如何获取到Android控件的高度,获取android控件 问题 如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth ...

  4. Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小

    Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小 1 动态获取手机屏幕的 屏幕密度与对应像素比例 例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度 ...

  5. 虚拟筛选服务器,SwissSimilarity:基于配体的虚拟筛选在线服务器

    SwissSimilarity是Swiss系提供的一个基于配体的虚拟筛选在线服务器. 主要的用途我觉得包含几个方面,1)一个是比如有一个小分子,需要找寻它潜在的靶标位点,作为一个找靶.2)另外一个是你 ...

  6. Android View的elevation属性,CardView始终在布局顶层覆盖其它控件的解决方式;

    elevation属性字面意思是海拔.你可以理解为它是控件的厚度:我们日常使用控件都是只在乎宽高的,这个控件的厚度却很少在意:如果你不太理解,看一下CardView覆盖其它控件的例子: Android ...

  7. android自定义分组控件,很值得收藏的安卓开源控件库

    日历 日历列表视图 星期视图日历 提交日历日期 material风格的日历 toolbar相结合的弹出日历 横向日历 Tab Material风格的Tab 各种样式Tab ProgressBar 类似 ...

  8. (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

    http://www.cnblogs.com/wuhuacong/p/3317223.html 在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的 ...

  9. Android 绿豆通讯录【 SQLite数据库(增删改查、展示数据) + ListView数据展示控件(展示所有数据) 】

    前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...

最新文章

  1. 270亿参数、刷榜CLUE,阿里达摩院发布最大中文预训练语言模型PLUG(开放测试)...
  2. linux小白-基础命令-useradd
  3. Spring @Configuration注解及配置方法
  4. linux 系统yum下安装vnc
  5. 50-10-010-配置-整体配置
  6. Jenkins的配置及使用
  7. word保存不了磁盘已满_磁盘到底该不该分区?容量不够怎么办?
  8. Visual Assist X V10.4.1626.0 不错的软件,让VC++也能自动提示
  9. 蓝桥杯C语言---基础练习
  10. 分布式数据库系统体系结构
  11. 武汉工程大学matlab,Lorenz系统动力学行为的MATLAB仿真与分析[1]
  12. 面向不平衡数据的电子病历自动分类研究
  13. python编程技术主要内容是_Python核心编程的四大神兽
  14. 直线外一点到直线的距离
  15. 2019全球人工智能技术大会在宁举办
  16. 条件概率、全概率公式
  17. Apollo星火计划学习笔记|L1 Apollo平台安装(2021年9月更新)
  18. 超频技术之内存“时序”重要参数设置解说
  19. 攻防世界之Web新手练习篇
  20. Android 数据库Sqlite的使用(1)

热门文章

  1. Java实现 蓝桥杯VIP 算法训练 猴子分苹果
  2. 面向对象方法学(2)
  3. 毕业设计-基于机器学习的图片处理图片倾斜校正
  4. wegame每次登陆都要滑动验证_WeGame版《怪物猎人世界》的猎人们,你的权限验证正常吗?...
  5. C语言判断.txt是否为空
  6. 微信公众号开发笔记(四)搭建本地测试环境
  7. jsp+Servlet+javaBean编写计算体重指数测量(BMI)的简单程序
  8. HTML5+ 获取设备信息
  9. 自定义View -- 蜘蛛网图
  10. 用过最好用的swf格式视频转换器,swf转成mp4