Перейдите к предыдущему фрагменту и уничтожьте существующий фрагмент

#java #android #android-fragments #navigation #android-navigation-graph

#java #Android #android-фрагменты #навигация #android-навигация-график

Вопрос:

Я реализовал много фрагментов, используя навигационный график. Рассмотрим, что у меня есть A-> B-> C-> D, где A, B, C, D — фрагменты в порядке реализации. Теперь я нахожусь на фрагменте D и хочу перейти к фрагменту C нажатием кнопки в D. Как мне это сделать? Также, когда я достигну фрагмента C и нажму кнопку «Назад», это должно привести меня к фрагменту B. Я хочу реализовать навигацию к предыдущему фрагменту и уничтожить текущий фрагмент. т. Е. Перейти к C из D и уничтожить D (не хочу этого при нажатии кнопки назад).

Ответ №1:

вы можете использовать приведенный ниже код, чтобы получить текущую позицию вашего viewpager :

 int position = mViewPager.getCurrentItem();
//or
Fragment fragment = adapter.getItem(position);
  

таким образом, вы также можете использовать этот код для динамического перехода на нужную вкладку, поэтому в прослушивателе нажатия кнопки установите этот код:

 viewpager.setCurrentItem(specificFragmentPosition);
// like this: viewpager.setCurrentItem(2);
  

и для второго вопроса вам нужно переопределить метод onBackPressed () в вашем фрагменте
этот метод вызывается, когда пользователь нажимает кнопку «Назад»…

таким образом, вы можете снова добавить этот код в свой метод onBackPressed (),

 viewpager.setCurrentItem(specificFragmentPosition);