Как можно добавлять и переключать фрагменты? Как работать с бэкстэком?
Если не говорить про NavigationComponent из Jetpack, то для добавления, переключения и удаления фрагментов используются два класса, FragmentManager и FragmentTransaction, но на самом деле почти все происходит в FragmentTransaction, менеджер нужен только чтобы получить транзакцию.
Получить транзакцию можно методом менеджера beginTransaction(). Чтобы добавить фрагмент используется метод add(), чтобы заменить replace(), а чтобы удалить remove(). Транзакция может принимать несколько методов.
Метод add() принимает в качестве аргументов id View, в который будет помещен фрагмент (сейчас рекомендуется в качестве контейнеров для фрагментов использовать FragmentContainerView), а также сам фрагмент (либо класс фрагмента). Так же опционально можно передать args и tag
Метод replace() принимает все то же самое что и add в качестве аргументов, за исключением класса. Заменять фрагменты можно только объектами.
Метод remove() принимает только объект класса Fragment.
После вызова всех методов необходимо вызвать метод commit() транзакции, таким образом все изменения вступят в силу. Так же можно вместо использования beginTransaction() и commit() использовать метод fragmentManager.commit { }, который автоматически вызовет beginTransaction() и commit(), но для этого необходимо подключить библиотеку fragment-ktx
Портфолио из реальных проектов
AI Sprints — обучение профессиям с ИИ
Создавайте проекты с первых недель. Telegram-бот, Android-приложение, Backend API — всё на GitHub с тестами и CI/CD
- Проекты на GitHub: каждый трек даёт 3–5 работ для портфолио — показываете на собесах
- Код-ревью менторов: учитесь писать чисто и правильно — код не стыдно показать
- Production-качество: тесты, CI/CD, документация — как в продуктовых командах
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе