Android CalendarView для показа событий
Я хочу показать календарь с событиями, использующими разные цвета в дату, аналогичную заданию календаря по умолчанию. Но я не вижу такого API в представлении календаря по умолчанию.
Может ли кто-нибудь направить меня в правильном направлении, как это сделать? Должен ли я продлевать календарь по умолчанию и добавлять свои собственные функции? Или я должен использовать текстовые поля 5x5 с помощью PageViewer и фрагментов?
Ответы
Ответ 1
Встроенный виджет CalendarView не предоставляет возможность изменять цвет ячеек календаря в режиме просмотра месяца. См. источник.
Вы можете попробовать следующие подходы:
-
Продлите с CalendarView и реализуйте onDraw самостоятельно. Вам придется переопределить все существующее поведение чертежа, включая эти 4 метода:
protected void onDraw(Canvas canvas) {
drawBackground(canvas);
drawWeekNumbersAndDates(canvas);
drawWeekSeparators(canvas);
drawSelectedDateVerticalBars(canvas);
}
-
Внедрите собственный CalendarView, который позволяет настраивать ячейки. Я предлагаю этот проект как хорошее место для начала работы, поскольку он уже поддерживает пользовательские ячейки.
Ответ 2
В прошлом месяце мне удалось реализовать небольшое представление календаря с помощью Caldroid https://github.com/roomorama/Caldroid.
Это гибкий способ использования, и не так сложно получить пользовательское представление календаря как реализацию onDraw
из CalendarView
.
Проверьте созданное представление (просто следуя документации):
![Custom calendar view using Caldroid]()
И, конечно же, вы можете пойти дальше.
Ответ 3
Я написал свой собственный CalendarView так же, как тот, который был замечен в календарях Google. Дает возможность прокручивать между месяцами, слушателями, добавлять события и является проектом gradle: https://github.com/SundeepK/CompactCalendarView. Он использует краску для выполнения всего чертежа, поэтому его легко изменить, чтобы делать все, что вы хотите.
Ответ 4
Следующий проект - лучшая альтернатива, которую я видел до сих пор, чтобы разрешить отображение визуальных событий, связанных с конкретным событием, в ячейке даты в календаре:
https://github.com/tyczj/ExtendedCalendarView
Ответ 5
Как насчет изменения цвета определенных дат - с помощью
android: dateTextAppearance и setDateTextAppearance (int)?
Однажды было описано:
изменить цвет календарных дат android
Вы можете попробовать это