Коллеги, добрый день!
Нужна подсказка.
Jmix 1.5.3. Элемент calendar в режиме на неделю или на день.
Как можно в динамике изменять шаг деления временной шкалы (не нашли ничего похожего)? Если события идут с частотой 10-15 минут, то стандартное отображение интервала с 8:00 до 23:00 делает события нечитаемыми.
Хочется дать пользователю кнопки управления масштабом +/- чтобы они сами могли подстраивать масштаб под текущую плотность календаря.
Здравствуйте, Андрей.
Отображаемые в calendar
дни недели и часы в сутках можно изменить программно. Для этого у calendar
есть следующие методы:
-
setFirstVisibleDayOfWeek(int firstDay)
иsetLastVisibleDayOfWeek(int lastDay)
- принимают значения от 1 до 7, где 1 – это воскресенье, а 7 – Суббота. -
setFirstVisibleHourOfDay(int firstHour)
иsetLastVisibleHourOfDay(int lastHour)
- принимают значения от 1 до 23, где 1 – это 01:00, а 23 – 23:00.
Подробнее: Calendar :: Документация Jmix
С уважением,
Сергей.
Сергей, спасибо за ответ.
Это мы нашли. Вопрос в том, что таким способом мы отсекаем полностью все неотображаемые часы. Хотелось бы при редактировании масштаба сохранить скроллинг по всему доступному диапазону. Есть какой-то вариант добиться такого поведения?
Здравствуйте!
Возможно, появилось решение по нашему вопросу?
Вы можете реализовать изменение масштаба календаря вручную, меняя размеры компонента. Сохранить возможность скроллинга можно с помощью контейнера ScrollBoxLayout
.
Прикладываю пример экрана с изменением размеров компонента, а также изменением настроек отображения календаря.
CalendarScreen.java (6.1 КБ)
calendar-screen.xml (1.7 КБ)
Сергей, спасибо большое за подсказку!