Android TeaScreenPopupWindow多类型筛选弹框
多类型筛选弹框、多数据筛选、多样化diy、单选or多选、必藏 (Multiple Type Screening Boxes, Multiple Data Screening, Diversified Diy, Single or Multiple Selection, Must Star)
Github地址
YangsBryant/TeaScreenPopupWindow
(Github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧!)

引入module
allprojects {
repositories {
google()
jcenter()
maven { url 'https://www.jitpack.io' }
}
}
implementation 'com.github.YangsBryant:TeaScreenPopupWindow:1.0.2'
主要代码
public class MainActivity extends AppCompatActivity {
@BindView(R.id.button)
Button button;
@BindView(R.id.button2)
Button button2;
private ScreenPopWindow screenPopWindow;
private List<FiltrateBean> dictList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind( this );
initParam();
initView();
}
private void initView() {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
screenPopWindow = new ScreenPopWindow(MainActivity.this, dictList);
//默认单选,因为共用的一个bean,这里调用reset重置下数据
screenPopWindow.reset().build();
screenPopWindow.showAsDropDown(button);
screenPopWindow.setOnConfirmClickListener(new ScreenPopWindow.OnConfirmClickListener() {
@Override
public void onConfirmClick(List<String> list) {
StringBuilder str = new StringBuilder();
for (int i=0;i<list.size();i++) {
str.append(list.get(i)).append(" ");
}
Toast.makeText(MainActivity.this, str.toString(), Toast.LENGTH_SHORT).show();
}
});
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
screenPopWindow = new ScreenPopWindow(MainActivity.this, dictList);
//设置多选,因为共用的一个bean,这里调用reset重置下数据
screenPopWindow.setSingle(false).reset().build();
screenPopWindow.showAsDropDown(button2);
screenPopWindow.setOnConfirmClickListener(new ScreenPopWindow.OnConfirmClickListener() {
@Override
public void onConfirmClick(List<String> list) {
StringBuilder str = new StringBuilder();
for (int i=0;i<list.size();i++) {
str.append(list.get(i)).append(" ");
}
Toast.makeText(MainActivity.this, str.toString(), Toast.LENGTH_SHORT).show();
}
});
}
});
}
private void initParam() {
String[] brand = {"花花公子", "语克","优衣库", "美特斯邦威", "森马", "翰代维", "PUMA"};
String[] type = {"男装", "T恤", "运动服", "女装", "童装", "紧身衣"};
FiltrateBean fb1 = new FiltrateBean();
fb1.setTypeName("品牌");
List<FiltrateBean.Children> childrenList = new ArrayList<>();
for (String aBrand : brand) {
FiltrateBean.Children cd = new FiltrateBean.Children();
cd.setValue(aBrand);
childrenList.add(cd);
}
fb1.setChildren(childrenList);
FiltrateBean fb2 = new FiltrateBean();
fb2.setTypeName("类型");
List<FiltrateBean.Children> childrenList2 = new ArrayList<>();
for (String aType : type) {
FiltrateBean.Children cd = new FiltrateBean.Children();
cd.setValue(aType);
childrenList2.add(cd);
}
fb2.setChildren(childrenList2);
dictList.add(fb1);
dictList.add(fb2);
}
}
TeaScreenPopupWindow属性大全
| 方法 | 属性 |
| setTopView(Boolean bl, int color) | 设置顶部分割线是否显示,以及颜色。默认true,#f3f3f3 |
| setBottomView(Boolean bl, int color) | 设置底部分割线是否显示,以及颜色。默认true,#f3f3f3 |
| setConfirm(String text, int size, int textColor, int color) | 设置确定按钮的文字,字体大小,字体颜色,背景颜色。默认“确定”,14,#ffffff,#0aa666 |
| setReset(String text, int size, int textColor, int color) | 设置重置按钮的文字,字体大小,字体颜色,背景颜色。默认“重置”,#000000,#ffffff |
| setAlpha(int mAlpha) | 设置阴影层的透明度 默认是0.5f |
| setTitleColor(int color) | 设置title的字体颜色,默认#000000 |
| setTitleSize(int size) | 设置title的字体大小,默认14 |
| setRadius(int radius) | 设置item圆角大小,默认12 |
| setStrokeWidth(int width) | 设置item边框粗细,默认2 |
| setStrokeColor(int color) | 设置item边框颜色,默认#0aa666 |
| setBoxWidth(int width) | 设置item宽度,默认是200dp |
| setBoxHeight(int height) | 设置item高度,默认是WRAP_CONTENT |
| setChecked(String color) | 设置item选中时的颜色,默认#0aa666 |
| setEnabled(String color) | 设置item未选中时的颜色,默认#000000 |
| setBoxSize(int size) | 设置item字体大小,默认13 |
| setSingle(boolean bl) | 设置是否开启单选,默认单选 |
| reset() | 显示控件时数据重置 |
| build() | 参数设置完毕,一定要build一下 |
Android TeaScreenPopupWindow多类型筛选弹框的更多相关文章
- Android填坑系列:在小米系列等机型上放开定位权限后的定位请求弹框
背景: 近期因实际项目需要,在特定操作下触发定位请求,取到用户位置及附近位置. 问题: 经初步选型,最终决定接入百度定位,按照百度定位SDK Android文档,接入过程相对顺利.但随后发现,在小米系 ...
- 弹框在UC浏览器或者Android机器上会被顶上去
弹框在UC浏览器或者Android机器上会被顶上去 可以通过监听resize事件 this.height = $(document).height(); window.addEventListener ...
- 遇到的一个移动端从下往上过渡的弹框,在Android下过渡动画的优化问题。
优化之前: /* 分享弹框样式 */ .popUpDiv { width: 100vw; height: 100vh; transition: all 0.5s ease; position: fix ...
- 考拉Android统一弹框
作者:钱成杰 背景 在快速开发的背景下,经历了n个版本后的考拉Android App中已经存在了各种各样看似相同却各有差别的弹框样式.其中包括系统弹框和自定义弹框,并且在线上时常会出现IllegalA ...
- Android H5混合开发(5):封装Cordova View, 让Fragment、弹框、Activity自由使用Cordova
近期,有同事咨询如何在Fragment中使用Cordova,看了下Cordova源码,官方并没有提供包含Cordova Webview的Fragment,以供我们继承. 上网查询了一下,也有几篇文章讲 ...
- Android 第三方开源下拉框:NiceSpinner
Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定 ...
- 自定义 popWindow弹框 工具包
前言:因为Android 没有像IOS一样的ActionSheet,虽然在github上看到有一些类似ActionSheet的库,总觉得不好用,不如自己写一个弹框通用类,样式全部自已来多好. Step ...
- js创建弹框(提示框,待确认框)
;;} html,body{text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-user-select:none;} a{color ...
- Android第三方开源下拉框:NiceSpinner
Android第三方开源下拉框:NiceSpinner Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Andro ...
随机推荐
- POJ3111
Demy has n jewels. Each of her jewels has some value vi and weight wi. Since her husband John got br ...
- tensorflow mnist模块详解
tensorflow的官方文档是以mnist数据集为例子开始的.文档本身没有介绍tensorflow.contrib.learn.python.learn.datasets.mnist模块.要想用te ...
- socket AcceptAsync方法的使用
AcceptAsync与Accept很大的不一样 Accept是一个同步 阻塞的已经封装好底层的方法 AcceptAsync是一个异步 非阻塞未封装的底层连接入口,需要手动填入连接代码用于优化sock ...
- 模拟实现 Promise(小白版)
模拟实现 Promise(小白版) 本篇来讲讲如何模拟实现一个 Promise 的基本功能,网上这类文章已经很多,本篇笔墨会比较多,因为想用自己的理解,用白话文来讲讲 Promise 的基本规范,参考 ...
- 深入探讨多态性及其在Java中的好处
多态是面向对象软件的基本原理之一.该术语通常表示可以具有多种形式的事物.在面向对象的方法中,多态使编写具有后期绑定引用的程序成为可能.尽管在Java中创建多态引用很容易,但其背后的概念对整体编程产生了 ...
- 类型,值,变量知识总结(js)
文章目录: 一. 全局变量和局部变量分析 二. 从两个角度去理解变量作用域 三. 关于浮点数值计算产生舍入误差的问题分析 四. 理解js预解析 一. 全局变量和局部变量分析 在函数外部由var定义的变 ...
- VS2019 开发Django(八)------视图
导航:VS2019开发Django系列 这几天学习了一下Django的视图和模板,从这几天的学习进度来看,视图这里并没有花很多的时间,相反的,模板花费了大量的时间,主要原因还是因为对Jquery操作d ...
- JS---最终版本--封装缓动(变速)动画函数---增加任意多个属性&回调函数&层级&透明度
封装缓动(变速)动画函数---增加任意多个属性&回调函数&层级&透明度 相较之前的,增加了2个判断,第一个判断是不是透明度,第二个判断是不是zindex, 都不是,就只是普通属 ...
- Linux下的密码破解
密码散列: 密码散列的$6 表示是:SHA512 这里我们使用hashcat 工具进行破解 ╰─ hashcat -m 1800 hash.txt /usr/share/wordlists/rocky ...
- MySQL集群高可用
目录 MySQL高可用 Galera Cluster Galera Cluster Galera Cluster特点 Galera Cluster 缺点 Galera Cluster工作过程 Gale ...