Ответ
Фрагменты легковеснее, потому что:
- Жизненный цикл проще, чем у Activity (нет onRestart(), onNewIntent() и т.д.)
- Ресурсы - Fragment использует ресурсы родительской Activity (контекст, window)
- Пересоздание быстрее, так как FragmentManager сохраняет состояние автоматически
- Память - не требует отдельного процесса/стека активностей
// Пример замены Activity на Fragment
class MyFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
return inflater.inflate(R.layout.fragment_my, container, false)
}
}
Фрагменты позволяют создавать гибкие UI, переиспользуя компоненты в разных активностях. Однако для простых экранов иногда Activity предпочтительнее.
Ответ 18+ 🔞
Да ты послушай, какая история интересная вырисовывается! Вот сидишь ты, бывает, пишешь свой код, и думаешь — ну зачем эти ваши фрагменты, когда есть нормальные активити? А потом раз — и понимаешь, что фрагменты-то, блядь, как хитрая жопа, устроены куда проще и удобнее в некоторых случаях.
Смотри, в чём прикол. У фрагмента жизненный цикл — просто песня, ёпта. Нету этой всей ерунды вроде onRestart() или onNewIntent(), с которыми можно так накосячить, что сам от себя охуеешь. Всё чётко и по делу.
Дальше — ресурсы. Фрагмент, сука, как мартышлюшка на шее у активити: сидит себе и пользуется всем её хозяйством. Контекст, окно — всё мамино, родное. Не надо выёбываться и своё городить.
А пересоздание? Вообще сказка! FragmentManager сам, блядь, как нянька, состояние фрагмента сохраняет и восстанавливает. Скорость — просто удивление пиздец, ни хуя себе! И памяти жрёт меньше, потому что отдельный процесс ему не нужен, не то что какой-нибудь тяжёлой активити.
Вот, смотри, как просто заменить активити на фрагмент:
// Пример замены Activity на Fragment
class MyFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
return inflater.inflate(R.layout.fragment_my, container, false)
}
}
Красота же, да? Чисто, аккуратно. Фрагменты, блядь, дают овердохуища гибкости: один и тот же кусок интерфейса можно, как хуй с горы, катать по разным активистям. Переиспользование на уровне бога, ёбать копать!
Но и тут, конечно, есть своя ложка дёгтя. Иногда для простого экрана, где нихуя сложного не происходит, проще взять старую добрую активити — и не париться. А то нагородишь фрагментов, а потом сидишь и думаешь: «Чёрта в душу, в сердцу мать, зачем я эту кашу заварил?».
В общем, инструмент на все случаи жизни. Главное — понимать, где его применять, а где не выёбываться.