Android PickerView简单应用

1. Android-PickerView

Android-PickerView这是一款仿iOS的PickerView控件,有时间选择器和选项选择器。

添加依赖项

implementation 'com.contrarywind:Android-PickerView:4.1.9'

2. 时间选择器

Android-PickerView时间选择器使用Build模式来创建

var timePickerView = TimePickerBuilder(context) { date, v ->
        }.build()
timePickerView.show()

显示如下

在这里插入图片描述

TimePickerBuilder主要方法

方法说明
setType(boolean[] type)分别控制“年”“月”“日”“时”“分”“秒”的显示或隐藏,type长度为6
setDate(Calendar date)调用Calendar的set方法来设置时间
setRangDate(Calendar startDate, Calendar endDate)设置起始时间
setCancelText(String textContentCancel)设置取消按钮文字
setCancelColor(int textColorCancel)设置取消文字颜色
setSubmitText(String textContentConfirm)设置确认按钮文字
setSubmitColor(int textColorConfirm)设置确认文字颜色
setSubCalSize(int textSizeSubmitCancel)设置取消和确认按钮文字大小
setTitleText(String textContentTitle)设置标题文字
setTitleColor(int textColorTitle)设置标题文字颜色
setTitleSize(int textSizeTitle)设置标题文字大小
setTitleBgColor(int bgColorTitle)设置标题栏颜色
setBgColor(int bgColorWheel)设置背景颜色
setOutSideColor(int outSideColor)设置外部背景颜色,默认是灰色
setContentTextSize(int textSizeContent)设置内容文字大小
setItemVisibleCount(int count)设置可见数目,最好是奇数,默认是9
setTextColorCenter(int textColorCenter)设置分割线之间的文字的颜色
setTextColorOut(int textColorOut)设置分割线以外的文字的颜色
setDividerColor(int dividerColor)设置分割线颜色
setDividerType(WheelView.DividerType dividerType)设置分割线样式,默认是FILL
setLineSpacingMultiplier(float lineSpacingMultiplier)设置间隔倍距,只能在1.0-4.0f之间,默认是1.6
isCyclic(boolean cyclic)item是否循环
setLabel(String, String, String, String, String, String)默认设置为年月日时分秒
isCenterLabel(boolean isCenterLabel)是否只显示中间选中项的label文字
setOutSideCancelable(boolean cancelable)是否允许点击外部取消
isDialog(boolean isDialog)是否是对话框模式
setDecorView(ViewGroup decorView)选择器会被添加到此容器中

自定义参数

var timePickerView = TimePickerBuilder(this) { date, v ->

}.setType(booleanArrayOf(true, true, true, true, false, false))
    .setCancelText("Cancel")
    .setCancelColor(Color.GRAY)
    .setSubmitText("Confirm")
    .setSubmitColor(Color.MAGENTA)
    .setSubCalSize(15)
    .setTitleText("Title")
    .setTitleColor(Color.RED)
    .setTitleSize(25)
    .setTitleBgColor(Color.BLACK)
    .setBgColor(Color.BLACK)
    .setContentTextSize(20)
    .setItemVisibleCount(11)
    .setTextColorCenter(Color.RED)
    .setTextColorOut(Color.MAGENTA)
    .setOutSideColor(Color.GRAY)
    .setDividerColor(Color.CYAN)
    .setDividerType(WheelView.DividerType.WRAP)
    .setLineSpacingMultiplier(2.5f)
    .isCyclic(true)
    .isCenterLabel(true)
    .build()

timePickerView.show()

显示如下

在这里插入图片描述

3. 选项选择器

Android-PickerView选项选择器同样使用Build模式来创建,并且支持3级联动。

var optionsPickerView = OptionsPickerBuilder(this) { option1, option2, option3, v ->

}.build<String>()

optionsPickerView.setNPicker(hourList, minuteList, secondList)

var calendar = Calendar.getInstance()
optionsPickerView.setSelectOptions(calendar.get(Calendar.HOUR_OF_DAY),
    calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND))
optionsPickerView.show()

显示如下

在这里插入图片描述

OptionsPickerBuilder主要方法

方法说明
setCancelText(String textContentCancel)设置取消按钮文字
setCancelColor(int textColorCancel)设置取消文字颜色
setSubmitText(String textContentConfirm)设置确认按钮文字
setSubmitColor(int textColorConfirm)设置确认文字颜色
setSubCalSize(int textSizeSubmitCancel)设置取消和确认按钮文字大小
setTitleText(String textContentTitle)设置标题文字
setTitleColor(int textColorTitle)设置标题文字颜色
setTitleSize(int textSizeTitle)设置标题文字大小
setTitleBgColor(int bgColorTitle)设置标题栏颜色
setBgColor(int bgColorWheel)设置背景颜色
setOutSideColor(int outSideColor)设置外部背景颜色,默认是灰色
setContentTextSize(int textSizeContent)设置内容文字大小
setItemVisibleCount(int count)设置可见数目,最好是奇数,默认是9
setTextColorCenter(int textColorCenter)设置分割线之间的文字的颜色
setTextColorOut(int textColorOut)设置分割线以外的文字的颜色
setDividerColor(int dividerColor)设置分割线颜色
setDividerType(WheelView.DividerType dividerType)设置分割线样式,默认是FILL
setLineSpacingMultiplier(float lineSpacingMultiplier)设置间隔倍距,只能在1.0-4.0f之间,默认是1.6
setCyclic(boolean cyclic1, boolean cyclic2, boolean cyclic3)item是否循环
setLabels(String label1, String label2, String label3)设置单位字符
isCenterLabel(boolean isCenterLabel)是否只显示中间选中项的label文字
setOutSideCancelable(boolean cancelable)是否允许点击外部取消
isDialog(boolean isDialog)是否是对话框模式
setDecorView(ViewGroup decorView)选择器会被添加到此容器中
isRestoreItem(boolean isRestoreItem)切换选项时,是否还原后面选项,默认保持上一个选项

自定义参数

var optionsPickerView = OptionsPickerBuilder(this) { option1, option2, option3, v ->
}.setCancelText("Cancel")
    .setCancelColor(Color.GRAY)
    .setSubmitText("Confirm")
    .setSubmitColor(Color.MAGENTA)
    .setSubCalSize(15)
    .setTitleText("Title")
    .setTitleColor(Color.RED)
    .setTitleSize(25)
    .setTitleBgColor(Color.BLACK)
    .setBgColor(Color.BLACK)
    .setContentTextSize(20)
    .setItemVisibleCount(11)
    .setTextColorCenter(Color.RED)
    .setTextColorOut(Color.MAGENTA)
    .setOutSideColor(Color.GRAY)
    .setDividerColor(Color.CYAN)
    .setDividerType(WheelView.DividerType.WRAP)
    .setLineSpacingMultiplier(2.5f)
    .setCyclic(false, true, true)
    .setLabels("时", "分", "秒")
    .isCenterLabel(true)
    .build<String>()

optionsPickerView.setNPicker(hourList, minuteList, secondList)
var calendar = Calendar.getInstance()
optionsPickerView.setSelectOptions(calendar.get(Calendar.HOUR_OF_DAY),
    calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND))

optionsPickerView.show()

显示如下
在这里插入图片描述

选项内容需要在OptionsPickerView里面设置

方法说明
setPicker(List optionsItems)设置联动选项
setPicker(List options1Items, List<List> options2Items)设置联动选项
setPicker(List options1Items, List<List> options2Items, List<List<List>> options3Items)设置联动选项
setNPicker(List options1Items, List options2Items, List options3Items)设置选项,非联动情况下使用
setSelectOptions(int option1)设置默认选中项
setSelectOptions(int option1, int option2)设置默认选中项
setSelectOptions(int option1, int option2, int option3)设置默认选中项

设置联动项,切换选项时,重置下一项

var optionsPickerView = OptionsPickerBuilder(this) { option1, option2, option3, v ->

}.isRestoreItem(true)
    .setItemVisibleCount(11)
    .build<String>()

optionsPickerView.setPicker(provinceList, cityList, areaList)
optionsPickerView.setSelectOptions(2, 5, 5)
optionsPickerView.show(v)

显示如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/20926.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鲲鹏昇腾开发者峰会开幕 星辰天合发布新一代天合翔宇一体机

近日&#xff0c;主题为“创未来 享非凡”的鲲鹏昇腾开发者峰会 2023 在东莞松山湖开幕&#xff0c;此次大会旨在帮助开发者深入了解鲲鹏、昇腾全栈技术&#xff0c;加速行业数智化的技术、产品和解决方案创新。 作为鲲鹏生态重要合作伙伴&#xff0c;XSKY星辰天合获邀参加此次…

1053 Path of Equal Weight(超级无敌详细注释+45行代码)

分数 30 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 Given a non-empty tree with root R, and with weight Wi​ assigned to each tree node Ti​. The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the pa…

亲水性Sulfo-Cyanine3 NHS ester水溶性CY3标记活性脂

Sulfo-Cy3是一种荧光染料&#xff0c;可用于生物成像和细胞标记等应用。Sulfo-Cy3是一种含有硫酸基的Cy3染料&#xff0c;具有高度的水溶性和稳定性。Sulfo-Cy3可以与NHS&#xff08;N-羟基琥珀酰亚胺&#xff09;结合&#xff0c;形成Sulfo-Cy3 NHS&#xff0c;这种结合物可以…

前端开发之函数式编程实践 | 京东云技术团队

作者&#xff1a;京东科技 牛志伟 函数式编程简介 常见应用场景 1、ES6中的map、filter、reduce等函数 [1,2,3,4,5].map(x > x * 2).filter(x > x > 5).reduce((p,n) > p n);2、React类组件 -> 函数式组件hooks、Vue3中的组合式API 3、RxJS、Lodash和Ramd…

华为基于dhcp snooping表的各种攻击防御

所有的前提是必须开启了dhcp snooping功能 一、dhcp 饿死攻击&#xff1a; 接口下或vlan下开启 dhcp snooping check dhcp-chaddr enable 开启二层源mac和chaddr一致性检测 dhcp snooping max-user-number 1 接口上手动配置的绑定成员数量&#xff08;可选择项&#xff09; …

亚马逊云科技作为中国出海力量之一,为中国企业提供技术桥梁

这是一个真实的故事&#xff1a;一家出海企业的项目交付需要在非洲吉布提部署上云&#xff0c;企业负责人在地图上找了半天才找到吉布提&#xff0c;而亚马逊云科技仅用了3天的时间就为企业在当地的业务开展&#xff0c;交付了IT基础设施。对于出海企业来说&#xff0c;这种效率…

文本三剑客awk

awk 工作原理&#xff1a; 逐行读取文本&#xff0c;默认以空格或tab键为分隔符进行分隔&#xff0c;将分隔所得的各个字段保存到内建变量中&#xff0c;并按模式或者条件执行编辑命令。 sed命令常用于一整行的处理&#xff0c;而awk比较倾向于将一行分成多个“字段”然后再进…

如何高效搭建影视及游戏工业化管线?

影视和游戏工业化是指制作流程上呈现出标准化、自动化、平台化、数智化的特征。工业化趋势会让制作影视和游戏门槛变高&#xff0c;让其进入精品对决时代。 不进行迭代&#xff0c;就面临被淘汰的危险。 随着受众对于影视和游戏质量的要求越发“苛刻”&#xff0c;精品化是整…

python:随机森林分类器的性能评估(决策树数量的影响)

作者:CSDN @ _养乐多_ 随机森林(Random Forest)是一种强大的机器学习算法,常用于分类和回归任务。它由多个决策树构成,通过集成学习的方式进行预测。在本篇博客中,我们将探讨随机森林分类器在不同决策树数量下的性能,并绘制相应的图表进行可视化分析。OOB误差,0被误判为…

Kubernetes 二进制部署高可用集群 失败 看报错

概述 openssl证书有问题导致失败&#xff0c;未能解决openssl如何创建私钥&#xff0c;可参考ansible 在私有局域网内完成Kubernetes二进制高可用集群的部署 ETCD Openssl > ca 证书 Haproxy Keepalived Kubernetes 主机规划 序号名字功能VMNET 1备注 1备注 2备注 3 备注…

【C++】-static在类和对象中的作用和细节(下)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 文章目录 前言 前言 今天我们来讲一个static对类的对象的作用…

C++模板template

我们现在有几个变量&#xff0c;我们向要实现他们的交换&#xff0c;所以我们现在写了一个swap函数 我们现在可以实现对这两个变量之间的交换&#xff0c; 那么我们有有两个变量需要交换呢&#xff1f;&#xff1f; 我们刚才的Swap函数的参数是int类型的&#xff0c;我们现在的…

SOME/IP 草稿

SOME/IP 名词解释 SOME/IP 全称是 Scalable service-Oriented MiddlewarE over IP。也就是基于 IP 协议的面向服务的可扩展性通信中间件协议。 面向服务 SOA基于 IP 协议之上的通信协议中间件 SOME/IP 功能 服务发现 (Service Discovery)远程服务调用 &#xff08;RPC,rem…

ConvTranspose2d 的简单例子理解

文章目录 参考基础概念output_padding 简单例子&#xff1a; stride2step1step2step3 参考 逆卷积的详细解释ConvTranspose2d&#xff08;fractionally-strided convolutions)nn.ConvTranspose2d的参数output_padding的作用torch.nn.ConvTranspose2d Explained 基础概念 逆卷…

VMware、CentOS、XShell、Xftp的安装

第 1 章 VMware 1.1 VMware 安装 一台电脑本身是可以装多个操作系统的&#xff0c;但是做不到多个操作系统切换自如&#xff0c;所以我们 需要一款软件帮助我们达到这个目的&#xff0c;不然数仓项目搭建不起来。 推荐的软件为 VMware&#xff0c;VMware 可以使用户在一台计…

一篇文章搞定《Android中的ANR》

------《ANR》 什么是ANR举个例子帮你认识ANRANR的产生原因ANR的监控手段方法一: 监控trace文件夹方法二&#xff1a;利用我们主线程的Looper方法三&#xff1a;监控SIGQUIT信号 ANR日志Traces.txtTraces文件分析几个分析案例&#xff1a;一、好定位的问题&#xff08;简单案例…

【C++】设计模式

目录 设计模式概述 单例模式 饿汉模式 懒汉模式 工厂模式 简单工厂模式 工厂方法模式 抽象工厂模式 观察者模式 设计模式概述 设计模式&#xff1a;一套反复被人使用、多数人知晓的、经过分类编目的代码设计经验的总结。一种固定的写代码的思维逻辑方式&#xff0c;一…

小学妹刚毕业没地方住想来借宿,于是我连夜用Python给她找了个好房子,我真是太机智了

事情是这样的&#xff0c;小学妹刚毕业参加工作&#xff0c;人生地不熟的&#xff0c;因为就在我附近上班&#xff0c;所以想找我借宿。。。 想什么呢&#xff0c;都不给住宿费&#xff0c;想免费住&#xff1f;于是我用Python连夜给她找了个单间&#xff0c;自己去住吧&#…

ChatGPT api 接口调用测试

参考文档&#xff1a; https://platform.openai.com/docs/quickstart/build-your-application示例说明&#xff1a; 本示例会生成一个简单的ChatGPT api接口调用server程序&#xff0c;该程序可以给用户输入的宠物类别为宠物取三个名字。打开网页后&#xff0c;会看到用户输入…

机器学习在生态、环境经济学中的应用及论文写作

近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c;目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…