Ответ
Да, работал. Фрагменты — это переиспользуемые компоненты UI, которые можно комбинировать в Activity.
Основные моменты:
- Жизненный цикл зависит от Activity, но имеет дополнительные методы (
onAttach(),onCreateView(),onDestroyView()). - Для добавления используется
FragmentManagerи транзакции (beginTransaction().add/replace().commit()). - Можно передавать данные через
BundleвsetArguments().
Пример:
class MyFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_my, container, false)
}
}
Добавление в Activity:
supportFragmentManager.beginTransaction()
.add(R.id.container, MyFragment())
.commit()
Использовал ViewBinding в фрагментах для безопасного доступа к View.
Ответ 18+ 🔞
А, фрагменты? Да, работал, конечно. Это ж как детали конструктора — кусочки интерфейса, которые можно впихнуть в активити и переиспользовать, где надо.
Если по делу:
- Жизненный цикл у них привязан к активити, но там своих костылей ещё овердохуища. Есть свои особые методы вроде
onAttach(),onCreateView(),onDestroyView()— с ними и танцуешь. - Чтобы запихнуть фрагмент куда надо, нужен
FragmentManagerи эти вечные транзакции:beginTransaction().add/replace().commit(). Без этого нихуя не работает. - Данные между ними передавать — отдельная песня. Обычно пихаешь всё в
BundleчерезsetArguments(), а потом выковыриваешь. Главное — не перепутать.
Вот тебе пример, смотри:
class MyFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Надуваешь тут свою верстку и возвращаешь
return inflater.inflate(R.layout.fragment_my, container, false)
}
}
А чтобы этот кусок в активити воткнуть, делаешь так:
supportFragmentManager.beginTransaction()
.add(R.id.container, MyFragment()) // Контейнер — это место в разметке активити
.commit()
Я, кстати, в фрагментах ViewBinding юзаю, чтобы к вьюхам обращаться. Так надёжнее, не вылетит с NullPointer, если что-то не так. А то бывало, ёпта, искал элемент, а его уже в помойке — доверия ебать ноль к старому способу.