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 ...
随机推荐
- shell 数组作为函数形参
问题描述: 把字符串tarFile和数组slaves_hostIP传入函数processArray中并输出结果. #!/bin/bash function processArray() { tarFi ...
- 在phpstudy集成环境下的nginx服务器下配置url重写
直接在对应的vhosts.conf配置文件的location / {}中添加以下内容: location / { index index.html index.htm index.php; #auto ...
- 基于webpack实现多html页面开发框架八 html引入图片打包和公共页面模块复用
一.解决什么问题 1.html中img引入的图片地址没有被替换,找不到图片 2.html公共部分复用问题,如头部.底部.浮动层等 二.html中img引入图片问题解决 1.在index.html插入i ...
- unity3d 随机添加树木
开放世界随机地图才是最重要的.. 随机生成树木 Terrain.terrainData //获取地形设置 terrainData.treePrototypes {get;set;} //获取或设置树木 ...
- Xshell连接阿里云服务器
1.遇到的问题 直接用阿里云的终端,还需要登录浏览器很是麻烦,所以用Xshell,ssh远程登录这样就轻松方便了很多. 2.打开 打开安装好的Xshell,点击新建 出现了这个界面,首先注意主 ...
- 【Nodejs】375- 如何加快 Node.js 应用的启动速度
我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题. ...
- 【CSS】333- 使用CSS自定义属性做一个前端加载骨架
点击上方"前端自习课"关注,学习起来~ 我们在打开APP或者网站的时候,经常可以看到这样的效果,在内容加载完成之前,会有一个骨架动画的出现,这种加载方式比传统的进度条方式要友好的多 ...
- Obeject.hasOwnProperty
对象{ }要用for-in遍历对象内的属性,通过hasOwnProperty判断属性是否是对象本身的,而不是原型上的 数组[ ]可以通过forEach来遍历
- 2019年Java并发精选面试题,哪些你还不会?(含答案和思维导图)
Java 并发编程 1.并发编程三要素? 2.实现可见性的方法有哪些? 3.多线程的价值? 4.创建线程的有哪些方式? 5.创建线程的三种方式的对比? 6.线程的状态流转图 7.Java 线程具有五中 ...
- Java设计模式的7种设计原则还有很多人不知道
前言 其实没有设计模式我们也能完成开发工作.但是为什么需要设计模式呢?让你看起来很牛,没错这个算一个.让你的代码层次感分明,可读性强而且容易维护.让你像我一样有更多的摸鱼划水时间. 可能有人说我一个类 ...