У меня есть фрагмент внутри групповой активности, и я хочу заменить его другим фрагментом:
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
SectionDescriptionFragment bdf = new SectionDescriptionFragment();
ft.replace(R.id.book_description_fragment, bdf);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
Он отлично работает, когда выполняется как отдельный проект без использования группы действий, все отлично работает в log cat, так как управление переходит внутрь getview (), но никакого представления не видно, даже не возникает никаких исключений, я хочу, чтобы фрагмент подробности книги быть заменен фрагментом фрагмента.
XML-фрагмент фрагмента книги имеет идентификатор book_description_fragment, а xml для фрагмента описания раздела имеет идентификатор section_description_fragment.
Приведенный выше код находится в методе элемента onClick, я хочу, чтобы, когда пользователь нажимает на элемент в горизонтальной прокрутке, фрагмент изменяется.
источник
onCreateView()
. Таким образом, как вы можете предположить, любая ссылка на фрагмент фактически теряется на уровне представления. Таким образом, вы в основном не можете заменить фрагмент, но вы можете вручную удалить представления, присутствующие в контейнере, и вместо этого поместить туда фрагмент, если это необходимо.Пожалуйста, посмотрите этот вопрос
Вы можете заменить только « динамически добавленный фрагмент ».
Итак, если вы хотите добавить динамический фрагмент, посмотрите этот пример.
источник
Я разработал идеальный метод управления заменой фрагментов и жизненным циклом .
Он заменяет только текущий фрагмент новым, если он не совпадает и не находится в backstack (в этом случае он выскочит).
Он содержит несколько опций, как будто вы хотите сохранить фрагмент в backstack.
=> Смотрите Гист здесь
Используя это и одно действие, вы можете добавить это в свое действие:
источник
Используйте код ниже в android.support.v4
источник
Используйте этот код, используя v4
источник
Надеюсь, у вас все хорошо. Когда я начал работать, у
Android Fragments
меня тоже возникла такая же проблема, тогда я прочитал о 1 - Как поменять фрагмент на другой. 2- Как добавить фрагмент, еслиFragment container
нет фрагмента.затем, после некоторых исследований и разработок, я создал функцию, которая до сих пор помогает мне во многих проектах, и я все еще использую эту простую функцию.
наслаждайся временем кода :)
источник
Используйте ViewPager. Это работа для меня.
источник
Вы можете использовать этот код
или вы можете использовать этот код
источник
В kotlin вы можете сделать:
источник
Вы можете использовать простой код своей работы для транзакции
источник
Я изменяю фрагмент динамически в однострочном коде.
Это работа в любой версии SDK и AndroidX.
Я использую навигацию как
BottomNavigationView
источник