Android: переименование элементов графического интерфейса против нового макета - PullRequest
0 голосов
/ 16 мая 2011

Я новичок в Android, и я имею дело со следующей проблемой. Мне нужно создать кнопку, которая группирует еще две кнопки схожих функций (своего рода подменю). Допустим, у нас есть кнопка «поиск», при нажатии на нее кнопка поиска должна исчезнуть, и на экране должны появиться две кнопки (например, «google» и «bing»).

Итак, моя идея состояла в том, чтобы программно управлять всеми тремя кнопками в одной и той же компоновке, а не создавать новую (временную) компоновку только для отображения и обработки двух кнопок. Как конечный автомат. Точнее было бы так:

Нажимаем на кнопку «поиск». OnClick (View) определяет, находимся ли мы на главном экране (mode = mainmenu), переименовывает кнопку поиска в «google» и создает вторую кнопку с именем «bing», или (mode = submenu), затем вызывает функцию кнопки из-за кнопка поиска уже переименована в "google" ...

Нажатием кнопки «Назад» onBackPressed () проверяет, находимся ли мы в подменю (mode = подменю), затем скрываем кнопку «bing» и переименовываем «google» в «search», в противном случае мы находимся в главном меню (mode = mainmenu), завершите деятельность.

Имеет ли это смысл? Кроме того, это приведет к большому количеству кода с увеличением количества кнопок и (под) меню и ухудшением удобства сопровождения для дальнейших изменений.

Спасибо!

P.S. Извините, если мой английский отстой (не мой родной язык); -)

Ответы [ 3 ]

0 голосов
/ 16 мая 2011

Что ж, если у вас есть проблемы с производительностью или вы ожидаете, что проблемы с производительностью могут возникнуть (из-за сложности вашего графического интерфейса), то это может иметь смысл.Но если нет, то простота кода важнее небольшого увеличения производительности.

0 голосов
/ 06 января 2014

Вы можете создать кнопку, которая остается невидимой (если быть точным), пока не будет нажата кнопка «поиск», и переименовать исходную кнопку поиска. Это работает, и это будет легче реализовать, если вы настроите макет в XML. Это также дает вам предварительный просмотр, который показывает, как это выглядит. Для отображения виджета программно будет иметь код, который сложно поддерживать.

Однако дизайн, изменяющий текст кнопки, не является хорошим дизайном. Во-первых, когда нажимается «поиск», изменение его текста очень сбивает с толку. Я лично предлагаю вам выскочить диалог выбора. Или просто покажите обе кнопки поиска на первом месте, если у вас нет места для двух кнопок.

0 голосов
/ 16 мая 2011

Это слишком много кода и потребуется слишком много отладки, поэтому я думаю, что лучший способ - это просто создать новый макет.

...