大家好,今天給大家分享一個高度可定製的日曆庫kizitonwose/Calendar

一個專為Android平臺設計的高度可定製的日曆庫

Calendar專為Android平臺設計,支援RecyclerView和Compose框架。它提供了豐富的功能,允許開發者根據需求定製日曆的外觀和功能。

專案介紹

此庫是開發Android應用時,實現日曆功能的一個強大工具,特別適合那些需要深度定製化日曆介面的應用開發者。

主要功能

  • 單選、多選或範圍選擇:提供完全靈活的方式來實現日期選擇

  • 周或月模式:可以選擇展示基於周的日曆或傳統的月日曆

  • 禁用特定日期:可以阻止某些日期的選擇

  • 邊界日期:限制日曆的日期範圍

  • 自定義日期檢視/組合:可以自定義日單元格的外觀和功能

  • 自定義日曆檢視/組合:可以自定義日曆的外觀和功能

  • 自定義每週的第一天:可以選擇任何一天作為每週的第一天

  • 水平或垂直滾動日曆:支援水平和垂直滾動

  • 熱力圖日曆:適合展示資料隨時間變化的圖表,如GitHub的貢獻圖

  • 月/周標題和腳註:可以為每個月/周新增任何型別的標題/腳註

  • 透過滑動操作或程式設計方式,輕鬆滾動到日曆上的任何日期/周/月。

  • 允許使用所有RecyclerView/LazyRow/LazyColumn自定義,因為日曆從檢視系統的RecyclerView擴充套件,並使用LazyRow/LazyColumn進行組合。

  • 允許你自定義設計日曆UI介面,由庫提供邏輯實現。

示例應用

示例應用程式為檢視和組合實現提供了大量示例。您想要實現的大多數技術都已在示例中完成。

  • 下載示例應用APP

  • 示例應用原始碼

專案整合

步驟一

僅當您的應用程式的 minSdkVersion 低於 26 時才需要執行此步驟。如果這不適用於您,請跳轉到步驟二。

minSdkVersion 低於 26 的應用程式必須啟用 Java 8+ API 脫糖以實現向後相容性,因為 Java 8 中新增了 java.time 類,從 Android SDK 26 開始原生支援該類。要設定專案進行脫糖,您需要首先確保您使用的是 Android Gradle 外掛 4.0.0 或更高版本。

然後將以下內容包含在應用程式的 build.gradle 檔案中:

android {
  defaultConfig {
    // Required ONLY if your minSdkVersion is below 21
    multiDexEnabled true
  }

  compileOptions {
    // Enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Set Java compatibility (version can be higher if desired)
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

  kotlinOptions {
    // Also add this for Kotlin projects (version can be higher if desired)
    jvmTarget = "1.8"
  }
}

dependencies {
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:<latest-version>'
}

您可以在此處找到最新版本的 desugar_jdk_libs

步驟二

將所需的日曆庫(view或compose)新增到您的應用程式 build.gradle:

dependencies {
  // The view calendar library
  implementation 'com.kizitonwose.calendar:view:<latest-version>'

  // The compose calendar library
  implementation 'com.kizitonwose.calendar:compose:<latest-version>'
}

對於compose日曆庫,請確保您使用的庫版本與專案中的 Compose UI 版本匹配。如果您使用的庫版本比專案中的 Compose UI 版本更高,則 gradle 將透過傳遞依賴升級專案中的 Compose UI 版本。

詳細使用文件請參考官方說明文件

專案地址

https://github.com/kizitonwose/Calendar