LWUIT: вкладки - как отметить текущую выбранную вкладку
-
29-10-2019 - |
Вопрос
У меня 4 вкладки.Каждая вкладка представлена кнопкой.Эти кнопки используются для выбора текущей отображаемой вкладки.У каждой кнопки есть значок и текст.
Я хочу выделить текущую выбранную вкладку, изменив цвет фона и цвет текстовой метки соответствующей кнопки.Я бы хотел сделать это с помощью редактора тем и ресурсов.
Я создал тему и указал невыделенные, выбранные и нажатые стили для UIID «Tab».Мои вкладки отлично смотрятся в Sun WTK!Отлично!Но я обнаружил, что на реальном телефоне вкладки всегда выглядят невыделенными.Пробовал на Nokia 5800 XPressMusic и C7.В чем разница?
Поэкспериментировав, выяснил причину - кнопки могут быть только в 2-х состояниях: невыделены и нажаты.Они никогда не будут в выбранном состоянии.В эмуляторе, когда я перехожу к кнопке с помощью клавиш навигации, она становится выделенной.
Итак, что мне делать, чтобы отметить текущую вкладку?
Решение 2
Я реализовал то, что мне нужно.Спасибо Шаю и его примеру.
Я не использовал свойства темы и внес все изменения в код.Я сделал это, потому что не понял, как установка уникального UIID может мне помочь, поскольку проблема не в идентификации UIID, для которого нужно изменить реквизиты, а в определении стиля кнопки, который нужно изменить.
Ниже приведены некоторые важные примечания к моему решению.
- Вызвать кодовый код для кнопок ПОСЛЕ , которые они добавили на вкладки.
- При нажатии любой кнопки вкладки обновите стили UNSELECTED кнопок вкладки.Также вы можете изменить их значки.
- Вызов генерального кода кода формы после шага 2.
Другие советы
Вы можете использовать несколько разных подходов, особенно в версии 1.5.
В LWUIT 1.5 есть компонент вкладок, который в значительной степени делает все за вас и отличается большой гибкостью.
Он использует переключатели, на которых вызывается метод setToggleButton(true)
.Кнопки переключения действуют как переключатели, поэтому, когда вы нажимаете кнопку в группе, она остается нажатой и отображается с использованием стиля ToggleButton (вы можете установить для UIID все, что захотите).См. Пример использования кнопок-переключателей в демонстрационной части шрифтов LWUIT demo.
Вариант, который будет работать для более старых версий LWUIT, - просто установить UIID кнопки на другое значение при ее нажатии (и восстановить UIID ранее выбранной кнопки до исходного значения).