YungSherman
@YungSherman
Личинка программиста

Как лучше всего использовать Fragments?

В своём приложении я буду использовать фрагменты для отображения новостей. Новости различаются по тематике, но их "схема" одинакова. Различается только ссылка, откуда они скачиваются, ну может ещё пара незначительных параметров. То есть по сути можно использовать один класс фрагмента. Я бы хотел уточнить, какой путь лучше выбрать:
  1. Сделать абстрактный класс фрагмента, и сделать для каждой тематики маленький класс-наследник, затем соответственно просто переключать нужные фрагменты.
  2. Сделать всего один класс фрагмента, но передавать в него переменную, обозначающую тип тематики через механизм передачи аргументов в фрагмент. Затем при выборе тематик удалять фрагмент из контейнера и добавлять снова с новыми аргументами.
  3. Аналогично второму пути, но не удалять фрагмент, а как-то динамически передавать в него тип тематики, и перезагружать его (через detach/attach).

Какой способ лучше по производительности и целесообразности или между ними нет особой разницы?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 2
@stoptalking
"Сделать абстрактный класс фрагмента, и сделать для каждой тематики маленький класс-наследник, затем соответственно просто переключать нужные фрагменты. " - новая тематика - новый десцендант? 1000 тематик - 1000 десцендантов? збс. Все остальное зависит от гуя и всяких других хреновин. Вы можете удалять/добавлять, аттачить/детачить, получать ссылку на имеющийся фрагмент и вызывать публичный метод. В той или иной степени все это равнозначно. Где-то будет больше аллокаций и меньше используемой памяти, где-то наоборот, где-то фрагмент будет всегда виден, где-то нет
Ответ написан
Комментировать
@red-barbarian
исходя из принципа "Преждевременная оптимизация — корень всех зол."
делайте просто по документации Пример
это не такая сложная вещь, что бы ее переделать в случае надобности. или выделить BaseNewsFragment
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы