-
Notifications
You must be signed in to change notification settings - Fork 126
DateTimePicker 自定义
LOPER7 edited this page Jan 14, 2021
·
3 revisions
DateTimePicker
主要由至多6个 NumberPicker
组成,所以在自定义布局时,根据自己所需的样式摆放 NumberPicker
即可。以下为注意事项
-
DateTimePicker
至多支持6个NumberPicker
,你可以在xml中按需摆放1-6个NumberPicker
- 为了让
DateTimePicker
找到NumberPicker
,需要在xml中为NumberPicker
指定id
或tag
,规则如下
/**
* year:np_datetime_year
* month:np_datetime_month
* day:np_datetime_day
* hour:np_datetime_hour
* minute:np_datetime_minute
* second:np_datetime_second
*/
android:id="@+id/np_datetime_year" or android:tag="np_datetime_year"
- 使用定制UI
在 CardDatePickerDialog 中使用
fun setPickerLayout(@NotNull layoutResId: Int)
在 DateTimePicker 中使用
<com.loper7.date_time_picker.DateTimePicker
android:id="@+id/dateTimePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout="@layout/layout_date_picker_segmentation"
/>
或者
dateTimePicker.setLayout(R.layout.layout_date_picker_segmentation)//自定义layout resId
如果以上自定义并不能满足你的需求,你还可以定制你自己的 DateTimePicker
, 可参照 DateTimePicker.kt 定义你想要属性以及在代码内编写你的UI逻辑。选择器的各种逻辑约束抽离在 DateTimeController.kt ,你的 DateTimePicker
只需让 DateTimeController.kt 绑定 NumberPicker
即可。比如:
DateTimeController().bindPicker(YEAR, mYearSpinner)
.bindPicker(MONTH, mMonthSpinner)
.bindPicker(DAY, mDaySpinner).bindPicker(HOUR, mHourSpinner)
.bindPicker(MIN, mMinuteSpinner).bindPicker(SECOND, mSecondSpinner).build()
快去定制你的 DateTimePicker
吧