Android?Material組件庫(kù)日期選擇和時(shí)間選擇器的使用方法
Android Material組件庫(kù)日期選擇和時(shí)間選擇器的使用方法
簡(jiǎn)單的封裝下Material組件里的日期選擇器和時(shí)間選擇器的使用方法
效果
代碼
需要添加Material組件庫(kù)的依賴(不過后面新版本Android Studio創(chuàng)建的新項(xiàng)目都會(huì)有此依賴了...)
implementation 'com.google.android.material:material:1.4.0'
private fun showTimeDialog(startDate: Date? = null) { val builder = MaterialTimePicker.Builder() //設(shè)置時(shí)間格式為24小時(shí)制 builder.setTimeFormat(TimeFormat.CLOCK_24H) startDate?.let { builder.setHour(it.hours) builder.setMinute(it.minutes) } val timePicker = builder.build() timePicker.apply { // 設(shè)置事件監(jiān)聽器(當(dāng)用戶選擇日期時(shí)觸發(fā)) addOnPositiveButtonClickListener { val hour = timePicker.hour val mintue = timePicker.minute val hourStr = if (hour>9) hour.toString() else "0$hour" val mintueStr = if (mintue>9) hour.toString() else "0$mintue" val timeStrText = "$hourStr:$mintueStr" //todo 選擇時(shí)間后的操作 } } timePicker.show(supportFragmentManager, "DATE_PICKER_TAG") }
private fun showDateDialog(startDate: Date? = null) { // 創(chuàng)建 Material 日歷選擇器實(shí)例 val builder = MaterialDatePicker.Builder.datePicker() //設(shè)置默認(rèn)選擇數(shù)據(jù) startDate?.let { builder.setSelection(it.time) } // 構(gòu)建 Material 日歷選擇器 val materialDatePicker = builder.build() materialDatePicker.apply { // 設(shè)置事件監(jiān)聽器(當(dāng)用戶選擇日期時(shí)觸發(fā)) addOnPositiveButtonClickListener { val date = Date(it) //todo 選擇時(shí)間后的操作 } } materialDatePicker.show(supportFragmentManager, "DATE_PICKER_TAG") }
擴(kuò)展:
Android TextView自動(dòng)縮放能夠完整顯示出一行
app開發(fā)中,需要TextView可以在不同的屏幕大小要完整顯示出文字,而不是顯示省略號(hào)
可以使用以下代碼,讓TextView字體實(shí)現(xiàn)自適應(yīng)(不過具體算法已經(jīng)實(shí)現(xiàn)了,我們只需要設(shè)置下即可實(shí)現(xiàn)效果)
//設(shè)置最大行數(shù)為1行(在xml中設(shè)置也可) tvPhotoRecovery.maxLines = 1 TextViewCompat.setAutoSizeTextTypeWithDefaults(tvPhotoRecovery, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM) //設(shè)置字體大小范圍為12sp-22sp TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(tvPhotoRecovery, 12, 22, 1, TypedValue.COMPLEX_UNIT_SP)
setAutoSizeTextTypeUniformWithConfiguration
方法的4個(gè)參數(shù)說明:
setAutoSizeTextTypeUniformWithConfiguration( TextView textView, int autoSizeMinTextSize, //字體最小數(shù)值 int autoSizeMaxTextSize, //字體最大數(shù)值 int autoSizeStepGranularity,//自動(dòng)適應(yīng)的步長(zhǎng)(簡(jiǎn)單理解就是在最小和最大范圍之間,從最小數(shù)值遞增步長(zhǎng)[n]來(lái)計(jì)算最符合的字體大小) int unit //字體單位,sp就可以 )
到此這篇關(guān)于Android Material組件庫(kù)(日期選擇和時(shí)間選擇器)基本使用的文章就介紹到這了,更多相關(guān)Android Material組件庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Android自定義Material進(jìn)度條效果
- Material Design系列之Behavior實(shí)現(xiàn)Android知乎首頁(yè)
- Android App仿QQ制作Material Design風(fēng)格沉浸式狀態(tài)欄
- Android Material設(shè)計(jì)中列表和卡片的創(chuàng)建方法解析
- 詳解Android Material設(shè)計(jì)中陰影效果的實(shí)現(xiàn)方法
- 詳解Android Material Design自定義動(dòng)畫的編寫
- Android時(shí)間選擇器、日期選擇器實(shí)現(xiàn)代碼
相關(guān)文章
Android關(guān)于SeekBar無(wú)法點(diǎn)擊到最大值問題解決方法記錄(推薦)
這篇文章主要介紹了Android關(guān)于SeekBar無(wú)法點(diǎn)擊到最大值問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Android利用ViewDragHelper輕松實(shí)現(xiàn)拼圖游戲的示例
本篇文章主要介紹了Android利用ViewDragHelper輕松實(shí)現(xiàn)拼圖游戲的示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-11-11Android開發(fā)必知 九種對(duì)話框的實(shí)現(xiàn)方法
App中少不了與用戶交互的各種dialog,以此達(dá)到很好的用戶體驗(yàn),下面給大家介紹Android開發(fā)必知 九種對(duì)話框的實(shí)現(xiàn)方法,有需要的朋友可以參考下2015-08-08Android實(shí)現(xiàn)上拉加載更多以及下拉刷新功能(ListView)
這篇文章主要介紹了Android實(shí)現(xiàn)上拉加載更多功能以及下拉刷新功能的相關(guān)資料,需要的朋友可以參考下2016-01-01Android 應(yīng)用的歡迎界面實(shí)現(xiàn)代碼
本文主要介紹Android 應(yīng)用歡迎界面的開發(fā),這里提供實(shí)現(xiàn)方法和實(shí)現(xiàn)代碼以供大家參考,有需要的朋友可以參考下2016-07-07