تو این کتابخونه که با jetpack compose توسعه داده شده، شما میتونید به راحتی time picker و date picker رو به صورت dialog (البته فعلا) استفاده کنید. توی هر قسمت که تو ادامه بهش اشاره میشه، یک سری پارامترها برای هر تابع در نظر گرفته شده که به شما امکان شخصی سازی تا حد زیادی رو میده که با اپلیکیشن شما سازگاری داشته باشه. در حال حاضر توابع زیر قابل استفاده هستن:
نحوه استفاده از کتابخونه هم خیلی سادس (البته من پیشفرضم اینه که gradle پروژتون kotlin dsl هست، برای حالتی که از groovy استفاده میکنید هم باید یه تغییرات کوچیکی بدین که خودتون بهتر از من میدونید😁)، اول وارد فایل setting.gradle.kts میشین و تیکه کد زیر رو تو قسمتی که مشخص شده اضافه میکنید:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven("https://jitpack.io")
}
}
بعدشم وارد فایل build.gradle.kts مربوط به app میشین و تیکه کد زیر رو هم تو قسمتی که مشخص شده اضافه میکنید:
dependencies {
implementation("com.github.rezarasuolzadeh:pickers:1.0.14")
implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0")
}
با فراخوانی تابع زیر، شما میتونید خروجی بالا رو تو هر جایی از کد compose تون که بخواین داشته باشین:
TimeDialog(
title = null,
confirmTitle = null,
cancelTitle = null,
initialHour = null,
initialMinute = null,
initialSecond = null,
initialTimeType = null,
fontFamily = null,
is12Hour = false,
showSeconds = true,
titleColor = null,
hourColor = null,
minuteColor = null,
secondColor = null,
timeTypeColor = null,
colonColor = null,
confirmColor = null,
cancelColor = null,
dividerColor = null,
backgroundColor = null,
backgroundBrush = null,
outputType = null,
outputSeparator = null,
onCancel = {},
onTimeSelect = {}
)
در این قسمت شما میتونید با استفاده از پارامترهای ورودی تابع (که اسمشم جوری گذاشتم که گویا باشه) استفاده کنید و تا جای ممکن دیالوگ رو برای خودتون شخصی سازی کنین. تو اینجا دو تا lambda function داریم که اولیش onCancel هست که وقتی روی دکمه انصراف (یا هر چیزی که اسمش رو خودتون توی cancelTitle بزارید) زده بشه فراخوانی میشه:
onCancel = {
// dismiss the dialog or do something
}
دومیش هم onTimeSelect هست که وقتی روی دکمه ثبت (یا هر چیزی که اسمش رو خودتون توی confirmTitle بزارید) زده بشه فراخوانی میشه که مقدار selectedTime همون زمانی هست که انتخاب کردید:
onTimeSelect = { selectedTime ->
// show the time or do something
}
با فراخوانی تابع زیر، شما میتونید خروجی بالا رو تو هر جایی از کد compose تون که بخواین داشته باشین:
DateDialog(
title = null,
confirmTitle = null,
cancelTitle = null,
initialDay = null,
initialMonth = null,
initialYear = null,
yearRange = 1380..1410,
fontFamily = null,
titleColor = null,
yearColor = null,
monthColor = null,
dayColor = null,
slashColor = null,
confirmColor = null,
cancelColor = null,
dividerColor = null,
backgroundColor = null,
backgroundBrush = null,
outputType = null,
outputSeparator = null,
onCancel = {},
onDateSelect = {}
)
در این قسمت شما میتونید با استفاده از پارامترهای ورودی تابع (که اسمشم جوری گذاشتم که گویا باشه) استفاده کنید و تا جای ممکن دیالوگ رو برای خودتون شخصی سازی کنین. تو اینجا دو تا lambda function داریم که اولیش onCancel هست که وقتی روی دکمه انصراف (یا هر چیزی که اسمش رو خودتون توی cancelTitle بزارید) زده بشه فراخوانی میشه:
onCancel = {
// dismiss the dialog or do something
}
دومیش هم onDateSelect هست که وقتی روی دکمه ثبت (یا هر چیزی که اسمش رو خودتون توی confirmTitle بزارید) زده بشه فراخوانی میشه که مقدار selectedDate همون زمانی هست که انتخاب کردید:
onDateSelect = { selectedDate ->
// show the time or do something
}