Skip to content

DateTimePicker 使用说明

LOPER7 edited this page Sep 13, 2022 · 19 revisions

xml中

app:layout 为自定义选择器布局 可参考 DateTimePicker 自定义

         <com.loper7.date_time_picker.DateTimePicker
                android:id="@+id/picker"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:dt_layout="@layout/layout_date_picker_globalization1"
                app:dt_showLabel="true"
                app:dt_textBold="true"
                app:dt_dividerColor="#E5E5E5"
                app:dt_textColor="#666666"
                app:dt_selectedTextBold="true"
                app:dt_themeColor="@color/colorPrimary"
                app:dt_normalTextSize="14sp"
                app:dt_selectTextSize="16sp" />

代码中

  • 设置监听
    dateTimePicker.setOnDateTimeChangedListener { millisecond ->  }

更多设置

  • 设置自定义选择器布局(注意:需要在dateTimePicker其他方法之前调用,否则其他方法将会失效)

详见 自定义你的选择器

 dateTimePicker.setLayout(R.layout.layout_date_picker_segmentation)//自定义layout resId
  • 设置显示状态

DateTimePicker支持显示 年月日时分 五个选项的任意组合,显示顺序以此为年、月、日、时、分,setDisplayType中可无序设置。

     dateTimePicker.setDisplayType(intArrayOf(
            DateTimeConfig.YEAR,//显示年
            DateTimeConfig.MONTH,//显示月
            DateTimeConfig.DAY,//显示日
            DateTimeConfig.HOUR,//显示时
            DateTimeConfig.MIN))//显示分
  • 设置默认选中时间
 dateTimePicker.setDefaultMillisecond(defaultMillisecond)//defaultMillisecond 为毫秒时间戳
  • 设置允许选择的最小时间
  dateTimePicker.setMinMillisecond(minMillisecond)
  • 设置允许选择的最大时间
  dateTimePicker.setMaxMillisecond(maxMillisecond)
  • 是否显示label标签(选中栏 年月日时分汉字)
  dateTimePicker.showLabel(true)
  • 设置主题颜色
  dateTimePicker.setThemeColor(ContextCompat.getColor(context,R.color.colorPrimary))
  • 设置默认字体颜色
  dateTimePicker.setTextColor(ContextCompat.getColor(context,R.color.colorGray))
  • 设置选择器分割线颜色
  dateTimePicker.setDividerColor(ContextCompat.getColor(context,R.color.colorDivider))
  • 设置字体大小

normal 为预览字体大小,select 为选中字体大小

  dateTimePicker.setTextSize(normal = 13,select = 15)//单位为sp
  • 设置标签文字
  //全部
  dateTimePicker.setLabelText(" Y"," M"," D"," Hr"," Min")
  //指定
  dateTimePicker.setLabelText(min = "M")
  • 设置国际化日期显示格式
 /**
  * 设置国际化日期格式显示 如果没有自定义layout且需要设置的日期格式为 dd-MM(单词缩写)-yyyy HH:mm:ss,此方法会改变年月日的顺序,及月份的显示。
  * @param global : DateTimeConfig.GLOBAL_LOCAL 根据设备系统语言自动选择
  *                 DateTimeConfig.GLOBAL_CHINA 设置日期格式为 yyyy-MM-dd HH:mm:ss
  *                 DateTimeConfig.GLOBAL_US 设置日期格式为 dd-MM(单词缩写)-yyyy HH:mm:ss
  */
  dateTimePicker.setGlobal(DateTimeConfig.GLOBAL_LOCAL)
  • 获取指定位置的numberPicker
 var numberPicker:NumberPicker? = picker.getPicker(DateTimeConfig.YEAR)

Clone this wiki locally