DateTimePicker 一个简约、漂亮的日期时间选择器,支持大面积自定义UI,内置日期时间选择弹窗,基于 Google BottomSheetDialog,可直接使用。
预览
快速体验
如何引入
Step 1. 添加 JitPack repository
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. 添加 Gradle依赖
dependencies {
...
//查看最新版本请前往github,仅支持androidx
implementation 'com.github.loperSeven:DateTimePicker:0.0.1'
}
如何使用
- 底部卡片弹窗
最简单的使用方式
CardDatePickerDialog(context).setOnChooseListener(object :CardDatePickerDialog.OnChooseListener {
override fun onChoose(millisecond: Long) {
}
})
所有可配置属性
CardDatePickerDialog.builder(context)
.setTitle("CARD DATE PICKER DIALOG")
.setDisplayType(displayList)
.setBackGroundModel(model)
.showBackNow(true)
.setDefaultTime(defaultDate)
.setMaxTime(maxDate)
.setMinTime(minDate)
.setThemeColor(color)
.showDateLabel(true)
.showFocusDateInfo(true)
.build().setOnChooseListener(object : CardDatePickerDialog.OnChooseListener {
override fun onChoose(millisecond: Long) {
}
}).show()
- 日期时间选择控件
xml中
<com.loper7.layout.DateTimePicker
android:id="@+id/dateTimePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:showLabel="true"
app:textSize="16sp"
app:themeColor="#FF8080" />
代码中
- 设置监听
dateTimePicker.setOnDateTimeChangedListener { view, millisecond, year, month, day, hour, minute ->
var chooseTime="${StringUtils.conversionTime(millisecond, "yyyy年MM月dd日 HH时mm分")}"
}
以上为最简单的使用方式
更多设置
- 设置显示状态
DateTimePicker支持显示 年月日时分 五个选项的任意组合,显示顺序以此为年、月、日、时、分,setDisplayType中可无序设置。
dateTimePicker.setDisplayType(intArrayOf(
DateTimePicker.YEAR,//显示年
DateTimePicker.MONTH,//显示月
DateTimePicker.DAY,//显示日
DateTimePicker.HOUR,//显示时
DateTimePicker.MIN))//显示分
- 设置默认选中时间
dateTimePicker.setDefaultMillisecond(defaultMillisecond)//defaultMillisecond 为毫秒时间戳
- 设置允许选择的最小时间
dateTimePicker.setMinMillisecond(minMillisecond)
- 设置允许选择的最大时间
dateTimePicker.setMaxMillisecond(maxMillisecond)
- 是否显示label标签(选中栏 年月日时分汉字)
dateTimePicker.showLabel(true)
- 设置主题颜色
dateTimePicker.setThemeColor(ContextCompat.getColor(context,R.color.colorPrimary))
- 设置字体大小
设置的字体大小为选中栏的字体大小,预览字体会根据字体大小等比缩放
dateTimePicker.setTextSize(15)//单位为sp
Github
更多详细属性可前往Github查看,也可以通过isuess提出你的问题,让我们共同优化DateTimePicker。
网友评论