百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
P

PopsTabView

> 编程语言
开源

PopsTabView是个filter容器,他可以快速,构建不同筛选样式,构建筛选结果,自由组合PopWindow成一组tab.

659 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

PopsTabView是个filter容器,他可以快速,构建不同筛选样式,构建筛选结果,自由组合PopWindow成一组tab.

PopsTabView

PopsTabView是个filter容器,他可以自动,快速,构建不同筛选样式,自由组合成一组tab.


更新日志

v 1.5.0 单项列表(仅限SingleFilterWindow,RowsFilterWindow)

  • 应issues需求,修复多选会弹回问题.
  • 应issues需求,增加可默认选项(可默认选中多个).

筛选样式 筛选种类 可自定义属性
单列 单选,多选 初始数据bean,筛选结果bean,tab样式,筛选样式
多排 单选,多选 初始数据bean,筛选结果beantab样式,筛选样式
双列 单项单选,单项多选 初始数据bean,筛选结果bean,tab样式,筛选样式
复杂 单项单选,单项多选 初始数据bean,筛选结果bean,tab样式,筛选样式
自定义 单项单选,单项多选 初始数据bean,筛选结果bean,tab样式,筛选样式

详情请参考代码,以及实例 后续筛选会不断完善补充.

PopTabView.java API

方法名 功能 是否必须
setOnPopTabSetListener() 外部回调的监听 是
setPopEntityLoader() 筛选样式加载类,新增类型可在此扩展 否
setResultLoader() 结果集加载器,可自定义进行配置 是
addFilterItem() 增加筛选项 是
setClickedItem() 设置默认选中的状态,并主动回调 v1.5.0 新增 否
setDefaultCheckedItems() 设置默认选中,不会触发OnPopSet()回调 否
removeItem() 清空容器 否

项目地址传送门 https://github.com/ccj659/PopsTabView

进阶

  • 支持自定义参数传送门

  • 支持自定义样式传送门

Show

Introduction

用户只需要,知道自己需要哪种filter,将数据转化FilterTabBean,然后addFilterItem(),最后自己在onPopTabSet()回调,即可使用,简单粗暴.

优点:

  • 支持快速,构建不同筛选样式,顺序,自由组合成一组filter的tab.
  • 用接口抽象出filter样式配置器loader,与功能代码解耦.
  • 支持自定义配置 筛选结果ResultLoader
  • 支持自定义数据bean.
  • 可以自由扩展,其他类型的Filter类型.

待完善:

  • 逐渐增加其他类型的筛选样式
  • view的样式可配置为可自定义

TO USE

添加依赖

In Gradle

compile 'me.ccj.PopsTabView:poptabview_lib:1.5.0'

In Maven


  me.ccj.PopsTabView
  poptabview_lib
  1.5.0
  pom

简单方式

如果业务需求很简单,用lib自带的筛选即可.

1.设定,筛选器类型. 将PopTypeLoader暴露,用于用户 筛选器类型.

需要自己按照该模式进行扩展.创建 具体 popwindow 实体对象. 创建对象和 功能代码解耦和,细节在PopTabView.addItem()中.若有需要,需要自由扩展,配置.

…

2.使用方式

####2.1 Builder模式,完成筛选器的创建.

…

3.配置筛选后的返回值样式ResultLoader

…

4.成功的回调,可配置为借口传参.此处回调,可以自主修改,扩展.

java
 /**
     * @param index  操作的 filter的下标号 0.1.2.3
     * @param lable  操作的 filter的对应的标签title
     * @param params 选中的 参数(需要传参)
     * @param value  选中的 值
     */
    @Override
    public void onPopTabSet(int index, String lable, String params, String value) {

        Toast.makeText(this, "lable=" + index + "\n&value=" + value, Toast.LENGTH_SHORT).show();
        tv_content.setText("&筛选项=" + index + "\n&筛选传参=" + params + "\n&筛选值=" + value);

    }

进阶用法

  • 自定义参数传送门

  • 自定义样式传送门

混淆规则

-dontwarn com.ccj.poptabview.**
-keep class com.ccj.poptabview.**{*;}

About Me

===

CSDN:http://blog.csdn.net/ccj659/article/

简书:http://www.jianshu.com/u/94423b4ef5cf

github: https//github.com/ccj659/

我的微信

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Java

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言