Создание общего заголовка для приложения Android - PullRequest
1 голос
/ 11 марта 2011

Я ищу, чтобы создать общий заголовок для активности Android и есть 3 возможных способа решить то же самое. Я хотел бы знать, какое решение является лучшим с точки зрения производительности и использования памяти.

  1. Скопируйте XML во все макеты XML: я считаю, что это наименее впечатляющее решение, которое использует много памяти

  2. Создайте собственный HeaderView, который я затем смогу использовать при необходимости. Недостатки: он по-прежнему создает много экземпляров.

  3. Используйте <include > для включения компонента XML, но не знаете, как он помогает повысить производительность и уменьшает использование памяти.

Так какой метод лучше или есть лучший?

Ответы [ 4 ]

1 голос
/ 11 марта 2011

Третий способ выглядит хорошим кандидатом ... разница в производительности между всеми способами невелика.С другой стороны, разница в ремонтопригодности это.Итак, третий вариант позволяет получить более чистое решение, поскольку у вас не будет стандартного кода, и вы сможете легко изменять заголовок в будущем без необходимости изменять другие представления.

Второе решение приятноно это вносит ненужную сложность.Собираетесь ли вы использовать более трех видов деятельности с этим заголовком?Собираетесь ли вы поделиться этим HeaderView или использовать его в другом проекте?Если нет ... тогда это не достойно.Хуже того, это заставит вас писать Java-код, который менее удобен в обслуживании, чем несколько строк XML.

1 голос
/ 11 марта 2011

Я думаю, ты беспокоишься не о том.Выберите тот, который лучше всего подходит для вашего проекта с точки зрения разработки или обслуживания.Помните, что все представления являются частью ОДНОЙ активности, которая будет видна пользователю в любое время в течение жизненного цикла активности Android.Это ответственность структуры за очистку невидимых операций, если есть необходимость в сборке мусора.Если вас беспокоит производительность просмотра, изучите возможность использования Hierarchy Viewer , который поставляется в комплекте с SDK, чтобы сгладить ваши представления.

0 голосов
/ 20 марта 2011

Я закончил с использованием шага 2 и установил для моего объекта заголовка значение null в onPause и сбросил его в onResume, чтобы сборщик мусора мог освободить ресурс.Спасибо @ Моррисон Чанг: -)

0 голосов
/ 11 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...