2016-06-23 2 views
1

Я реализую тот же фрагмент 100 в ViewPager в своем приложении. Фрагмент довольно большой отображает данные с сервера. Когда я помещаю код mViewPager.setOffscreenPageLimit (100), приложение выглядит очень тяжелым. Поэтому я использую способ: remove setOffscreenPageLimit и вызывается метод проверки данных на сервере и отображает его при выборе фрагмента. Но когда это происходит: когда был выбран фрагмент «1», а затем фрагмент «2», назад к фрагменту «1», фрагмент «1» повторит действие. Мой вопрос заключается в том, как сохранить активность каждого фрагмента или вернуться к фрагменту, который был выбран в последнем условии? Извините за мой английский.сохранить каждый фрагмент, выбранный внутренним ViewPager?

ответ

0

если вы удалите setOffscreenPageLimit, Путь, чтобы сохранить активность каждого фрагмента хранить данные о состоянии фрагмента в:

@Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putData("key", fragmentData); 
    } 

, когда вы оставите его, когда вы снова, вы обновляете фрагмент по данные состояния, которые вы сохранили.

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
      fragmentData = savedInstanceState.getData("key", defaultData); 
    } 

Вы должны использовать некоторые фрагменты в viewpager, не используйте слишком много. подумайте об использовании фрагмента и отобразите много представлений, данных в нем.

0

setOffscreenPageLimit: Устанавливает количество страниц, которые должны быть сохранены, чтобы обе стороны от текущей страницы в иерархии представлений в незанятом состоянии. Страницы, выходящие за этот предел, будут воссозданы из адаптера , если это необходимо.

Не устанавливайтеOffscreenPageLimit слишком большой, потому что плейер просмотра будет поддерживать активную страницу, поэтому ваше приложение будет работать медленно. И когда вы удаляете setOffscreenPageLimit, этот параметр по умолчанию равен 1. Это означает, что страницы, выходящие за пределы этого предела (1), будут воссозданы из адаптера, когда это необходимо. https://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit(int)

Смежные вопросы