Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Como iniciar um ArrayList com uma posição específica de item?

Oi, estou desenvolvendo um aplicativo pessoal de resoluções de questões e tenho o seguinte cenário: Tenho um fragmento que mostra uma lista com questões disponíveis, e quando um item dessa lista é clicado, outro fragmento é aberto com os detalhes dessa questão. Estou tentando implementar o componente viewPager2 no segundo fragmento para que seja possível passar para a próxima questão sem a necessidade de voltar ao fragmento anterior. Minha dúvida é, como eu posso iniciar a lista do componente viewPager com a posição específica passada pelo clique no item da lista do primeiro fragmento? Exemplo: Quando clicado no quinto elemento da primeira lista, deve ser direcionado ao segundo fragmento na quinta posição da lista do viewPager. https://github.com/KevinAeiou/Questoes.git

2 respostas
solução!

Para iniciar o ViewPager2 em uma posição específica, você pode usar o método setCurrentItem(int position, boolean smoothScroll). No primeiro fragmento, basta passar a posição clicada como argumento ao segundo fragmento:

Bundle bundle = new Bundle();
bundle.putInt("selected_position", positionClicada);
segundoFragmento.setArguments(bundle);

No segundo fragmento, você recupera o valor e define a posição no ViewPager2:

int selectedPosition = getArguments().getInt("selected_position", 0);
viewPager2.setCurrentItem(selectedPosition, false);

Abs;

Obrigado, isso mesmo que procurava.