Android CalendarView 的 Material Design 向後移植。我們的目標是擁有 Material 外觀和感覺,而不是與平台 100% 相同。
步驟 1. 將 JitPack 儲存庫新增至您的建置檔案中
allprojects {
repositories {
.. .
maven { url ' https://jitpack.io ' }
}
}
步驟2.新增依賴
dependencies {
implementation ' com.github.prolificinteractive:material-calendarview:${version} '
}
MaterialCalendarView
新增到您的佈局或視圖層次結構中。OnDateSelectedListener
或在需要時呼叫MaterialCalendarView.getSelectedDates()
。Javadoc 可在此處取得
例子:
< com .prolificinteractive.materialcalendarview.MaterialCalendarView
xmlns : app = " http://schemas.android.com/apk/res-auto "
android : id = " @+id/calendarView "
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
app : mcv_showOtherDates = " all "
app : mcv_selectionColor = " #00F "
/>
請務必檢查此處提供的所有文件。
該庫的目標之一是可自訂。許多選項包括:
所有這些以及更多內容都可以透過裝飾器 API 來完成。請查看裝飾器文件。
Material CalendarView 2.0 對其 API 核心進行了重大更改,我們從使用java.util.Calendar
過渡到java.time.LocalDate
。另外,這不應該影響公共 api(我們仍在使用CalendarDay
), Calendar
和LocalDate
功能略有不同。舉個例子:月份現在索引為從 1(一月)到 12(十二月)。您可以使用getDate()
從CalendarDay
存取LocalDate
。
此外,此版本沒有任何重大更改,它對小部件進行了重大改進。為使用者添加了更多自訂功能(自訂字體、長按監聽器、顯示/隱藏工作日)以及各種修復、範例應用程式的改進和常規清理。請務必檢查變更日誌和發布部分以獲取更多詳細資訊。
我們最近更新到了最新的 gradle,並決定將我們的庫移至託管服務 Jitpack。請參閱安裝部分以了解更多詳細資訊。
重大變更: setFirstDayOfWeek
、 setMin/MaxDate
和setCalendarDisplayMode
已移至State
物件。這是必要的,因為尚不清楚這些不是簡單的設定器 - 單獨而言,它們會產生副作用並觸發完整的適配器/日期範圍重新計算。視圖的典型用法涉及在onCreate
期間預先設定所有這些不變量,且使用者不知道設定所有 4 個變數會造成大量浪費。更不用說某些事情會產生副作用——有些事情會重置當前日期或選定的日期。因此,以不同的順序呼叫相同的 4 個方法可能會導致不同的狀態,這是很糟糕的。
對於大多數情況,您只需將這些不變量的設定替換為:
mcv . state (). edit ()
. setFirstDayOfWeek ( Calendar . WEDNESDAY )
. setMinimumDate ( CalendarDay . from ( 2016 , 4 , 3 ))
. setMaximumDate ( CalendarDay . from ( 2016 , 5 , 12 ))
. setCalendarDisplayMode ( CalendarMode . WEEKS )
. commit ();
mcv.state().edit()
將保留先前設定的值; mcv.newState()
將使用預設值建立新狀態。呼叫commit
將觸發適配器和日期範圍的重建。建議將這些狀態變更作為 MCV 的第一次修改進行(在配置當前日期或選定日期等其他任何內容之前);我們不保證在狀態修改時這些修改會被保留。
有關使用詳細信息,請參閱 CUSTOMIZATION_BUILDER。
新增內容:新增了setSelectionMode(SELECTION_MODE_RANGE)
以允許選擇 2 個日期並選擇整個日期範圍。非常感謝 papageorgiouk 在此功能方面所做的工作。
請參閱變更日誌中的其他變更。
您願意貢獻嗎?分叉我們並發送拉取請求!請務必先檢查我們的問題。
材料日曆視圖版權所有 (c) 2018 Prolific Interactive。它可以根據許可證文件中指定的條款重新分發。
Material Calendar View 由 Prolific Interactive 維護和資助。名稱和標誌是 Prolific Interactive 的商標。