Возможно, он попросил вас сделать это из-за самого ограничивающего фактора обычного ListField: вы застряли с одинаковой высотой.
Вам нужно иметь родительский контейнер, который представляет собой прокручиваемый VerticalFieldManager.Внутри этого будут пользовательские менеджеры, которые могут обрабатывать те же функции, что и строка в ListField.Он должен принять фокус и запустить событие при нажатии.Вам также нужно будет отслеживать, какой это номер элемента, чтобы при щелчке он знал, как уведомить слушателей о том, какой из них был выбран.Кроме того, родительский VFM должен иметь возможность отслеживать, какая «строка» в данный момент выбрана - в данном случае какая имеет фокус.
Редактировать для комментария
Если вы добавите NullField
в каждый из них, он может принять фокус, но на самом деле не будет отображаться как что-либо.Чтобы определить, имеет ли фокус «строка» (Менеджер), вы можете использовать getFieldWithFocus()
для этого Менеджера, а та, которая не возвращает null
, является выбранной строкой.Вам, вероятно, также придется сделать какую-нибудь произвольную картину, чтобы нарисовать выделение выделения