Eu tenho um fragmento dentro de uma atividade de grupo e quero substituí-lo por outro fragmento:
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();
Funciona bem quando é feito como um projeto separado sem usar o grupo de atividades, tudo funciona bem no log cat à medida que o controle entra em getview (), mas nenhuma visualização é visível, nem mesmo ocorre qualquer exceção, quero que o fragmento de detalhes do livro seja ser substituído pelo fragmento de detalhe da seção.
O XML do fragmento de detalhes do livro possui o ID book_description_fragment e o XML para o fragmento de descrição da seção possui o ID section_description_fragment.
O código acima está no método onClick de um item. Quero que, quando o usuário tocar em um item na visualização de rolagem horizontal, o fragmento seja alterado.
fonte
onCreateView()
. Portanto, como você pode supor, qualquer referência ao fragmento é realmente perdida no nível da visualização. Portanto, você basicamente não pode substituir um fragmento, mas pode remover manualmente as visualizações agora presentes no contêiner e colocar um fragmento nele, se necessário.Por favor, veja esta pergunta
Você pode substituir apenas um " fragmento adicionado dinamicamente ".
Portanto, se você deseja adicionar um fragmento dinâmico, consulte este exemplo.
fonte
Eu criei uma essência com o método perfeito para gerenciar a substituição de fragmentos e o ciclo de vida .
Ele apenas substitui o fragmento atual por um novo, se não for o mesmo e se não estiver no backstack (nesse caso, ele será aberto).
Ele contém várias opções como se você deseja que o fragmento seja salvo no backstack.
=> Veja Gist aqui
Usando esta e uma única atividade, você pode adicionar isso à sua atividade:
fonte
Use o código abaixo em android.support.v4
fonte
Use esse código usando a v4
fonte
Espero que você esteja indo bem. Quando comecei a trabalhar
Android Fragments
, também estava tendo o mesmo problema, e li sobre 1 - Como alternar fragmento para outro. 2- Como adicionar fragmento seFragment container
não possui fragmento.depois de alguma pesquisa e desenvolvimento, criei uma função que me ajuda em muitos projetos até agora e ainda estou usando essa função simples.
aproveite o seu tempo de código :)
fonte
Use o ViewPager. É trabalho para mim.
fonte
Você pode usar este código
ou você pode usar este código
fonte
No kotlin você pode fazer:
fonte
você pode usar código simples seu trabalho para transação
fonte
Eu mudo o fragmento dinamicamente no código de linha única.
É um trabalho em qualquer versão do SDK e no androidx
eu uso a navegação como
BottomNavigationView
fonte