Андроид Вьюпейджер. Как Заменить Один Фрагмент Другим

В этой статье я хочу поделиться своим опытом использования ViewPager и FragmentStatePagerAdapter, которые появились в пакете совместимости.

Точнее, расскажите, с какими проблемами нам пришлось столкнуться и как их решили.

В частности, замена одного фрагмента другим.

Вдохновлено сообщением в официальном блоге android-developers.blogspot.com/2011/08/horizontal-view-swiping-with-viewpager.html , начал пробовать.

Суть задачи заключалась в том, что одна из страниц будет фрагментами почтового приложения, а остальные страницы — фрагментами приложения мессенджера.

Есть несколько фрагментов почтового приложения, но страница для их отображения всего одна.

Для простоты будем рассматривать два фрагмента почты — списки папок и письма в выбранной папке.

Первое, что видит пользователь, — это фрагмент списка папок.

При выборе конкретной папки фрагмент папки заменяется соответствующим фрагментом письма на той же странице.

Но, как и многие (стоит поискать в Интернете по запросу «android viewpager replace фрагменты»), я столкнулся с проблемой — один Fragment при использовании ViewPager не заменялся другим.

Решение было следующим — перенести код ViewPager, PagerAdapter и FragmentStatePagerAdapter из исходных кодов пакета совместимости в свой проект и добавить в ViewPager следующую функцию:

   

public void notifyItemChanged(Object oldItem, Object newItem) {

Теги: #Android #mail.ru
Вместе с данным постом часто просматривают: