منفذ خلفي بتصميم متعدد الأبعاد لـ CalendarView لنظام Android. الهدف هو الحصول على شكل ومظهر مادي، بدلاً من التكافؤ بنسبة 100% مع تنفيذ النظام الأساسي.
الخطوة 1. أضف مستودع JitPack إلى ملف البناء الخاص بك
allprojects {
repositories {
.. .
maven { url ' https://jitpack.io ' }
}
}
الخطوة 2. أضف التبعية
dependencies {
implementation ' com.github.prolificinteractive:material-calendarview:${version} '
}
MaterialCalendarView
إلى تخطيطاتك أو اعرض التسلسل الهرمي.OnDateSelectedListener
أو اتصل بـ MaterialCalendarView.getSelectedDates()
عندما تحتاج إليه.جافادوك متاح هنا
مثال:
< 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 "
/>
تأكد من مراجعة جميع الوثائق المتاحة هنا.
أحد أهداف هذه المكتبة هو أن تكون قابلة للتخصيص. تشمل الخيارات العديدة ما يلي:
كل هذا وأكثر يمكن القيام به عبر واجهة برمجة تطبيقات الديكور. يرجى مراجعة وثائق الديكور.
يأتي Material CalendarView 2.0 مع تغيير كبير في جوهر واجهة برمجة التطبيقات الخاصة به، حيث انتقلنا من استخدام java.util.Calendar
إلى java.time.LocalDate
. كما لا ينبغي أن يؤثر ذلك على واجهة برمجة التطبيقات العامة (ما زلنا نستخدم CalendarDay
)، يعمل كل من Calendar
و LocalDate
بشكل مختلف قليلاً. أحد الأمثلة على ذلك: تتم الآن فهرسة الأشهر من 1 (يناير) إلى 12 (ديسمبر). يمكنك الوصول من LocalDate
من CalendarDay
باستخدام getDate()
.
كما أن هذا الإصدار لا يحتوي على أي تغييرات في الفواصل، فهو يوفر تحسينات كبيرة على عنصر واجهة المستخدم. تمت إضافة المزيد من التخصيص للمستخدم (الخطوط المخصصة، ومستمع النقر الطويل، وإظهار/إخفاء أيام الأسبوع) بالإضافة إلى العديد من الإصلاحات، والتحسينات على نموذج التطبيق، والتنظيف العام. تأكد من مراجعة سجل التغيير وقسم الإصدار لمزيد من التفاصيل.
لقد قمنا مؤخرًا بالتحديث إلى أحدث إصدار وقررنا نقل مكتباتنا إلى خدمة الاستضافة Jitpack. يرجى الرجوع إلى قسم التثبيت لمزيد من التفاصيل.
تغيير جذري: يتم نقل setFirstDayOfWeek
و setMin/MaxDate
و setCalendarDisplayMode
إلى كائن State
. كان هذا ضروريًا لأنه لم يكن من الواضح أن هذه لم تكن أدوات ضبط بسيطة - فقد كانت بشكل فردي ذات تأثير جانبي وأثارت عمليات إعادة حساب كاملة للمحول/النطاق الزمني. يتضمن الاستخدام النموذجي للعرض إعداد كل هذه الثوابت مقدمًا أثناء onCreate
ولم يكن معروفًا للمستخدم أن تعيين كل هذه الثوابت الأربعة سيؤدي إلى الكثير من الهدر. ناهيك عن أن بعض الأشياء كانت لها آثار جانبية - فقد يؤدي بعضها إلى إعادة تعيين اليوم الحالي أو التاريخ المحدد. ونتيجة لذلك، فإن نفس الأساليب الأربعة التي يتم استدعاؤها بترتيب مختلف يمكن أن تؤدي إلى حالة مختلفة، وهو أمر سيئ.
في معظم الحالات، ستحتاج ببساطة إلى استبدال إعداد تلك الثوابت بما يلي:
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)
للسماح بتحديد تاريخين وتحديد نطاق التواريخ بالكامل. شكرًا جزيلاً لـ papageorgiouk على عمله في هذه الميزة.
شاهد التغييرات الأخرى في سجل التغيير.
هل ترغب في المساهمة؟ شوكة لنا وإرسال طلب سحب! تأكد من مراجعة مشكلاتنا أولاً.
عرض تقويم المواد هو حقوق الطبع والنشر (c) لعام 2018 Prolific Interactive. ويجوز إعادة توزيعه بموجب الشروط المحددة في ملف الترخيص.
تتم صيانة وتمويل عرض تقويم المواد بواسطة Prolific Interactive. الأسماء والشعارات هي علامات تجارية لشركة Prolific Interactive.