Навигационный ящик — каждый раз создавайте новый экземпляр фрагмента или просто обновляйте данные

У меня есть небольшой спор с самим собой, и я хотел проверить с остальными из вас, какая реализация является «лучшей» с точки зрения лучших практик.

Как и в обычном приложении Navigation Drawer, в моем есть одна основная NavDrawerActivity, которая содержит сам NavDrawer, и макет фрейма, который я позже заменю. Затем у меня также есть один фрагмент с именем ListsFragment, который в основном содержит ListView данных из простого String ArrayList. Поэтому этот ListsFragment всегда содержит базовый список строк (это означает, что мне нужен только один файл fragment.java).

Теперь, в примере Google Navigation Drawer, у них есть что-то похожее, где у них есть один фрагмент, который они просто заменяют новым содержимым (заменяют, буквально, FragmentManager.replace(etc)). Это означает, что каждый раз, когда мы выбираем элемент из NavDrawer, создается новый фрагмент. Это то, чем я сейчас занимаюсь.

Но я думал, является ли это "грязным" или нет. Не будет ли более чистый способ сделать это:

Создайте во фрагменте метод с именем loadList(ArrayList<String> list), который в основном заменяет содержимое ListView во фрагменте потребляемым списком.

В конце концов, разве это не «более дешевая» стоимость операции, чем необходимость каждый раз создавать новый фрагмент? Когда я мог бы просто «обновлять» данные с помощью одной переменной фрагмента, которую я буду поддерживать?

Итак, мой вопрос: что лучше? Или, если «лучше» слишком субъективно: что больше, «путь Java/Android». Было бы здорово увидеть, что вы думаете. Спасибо!

TLDR: что лучше: создавать новый фрагмент каждый раз, когда я выбираю новый элемент из NavDrawer, или просто загружать новые данные с помощью общедоступного метода loadData.

РЕДАКТИРОВАТЬ: Для тех, кто хочет увидеть пример Google NavDrawer, пример можно загрузить здесь http://developer.android.com/training/implementing-navigation/nav-drawer.html


person Community    schedule 15.08.2013    source источник