2014-10-07 4 views
0

У меня есть viewpager в моем приложении с 4 вкладками. Я знаю, что могу сделать setOffscreenPageLimit(3), чтобы сохранить все страницы из перезагрузок. но теперь моя проблема заключается в том, что все 4 вкладки должны отправлять запрос на сервер, и это занимает некоторое время, особенно когда все 4 запроса отправляются одновременно. Есть ли способ, который я могу сделать, например, setOffscreenPageLimit(0), который заставляет приложение загружать только текущую страницу, но сохранить страницу, когда происходит салфетка?android-кешировать каждый фрагмент в viewpager, но не загружается, пока фрагмент не будет виден пользователю?

ответ

2

Есть ли способ, что я могу сделать, как setOffscreenPageLimit (0), что делает приложение загружает только текущую страницу, но сохранить страницу, когда коромысло произойдет? не

Нет, вы не можете, чтобы иметь лучший UX андроида доза не позволяют установить его в 0, так что значение по умолчанию, и самый нижний из них 1, что означает, что загружает ваши прочь фрагменты экрана левого и правого вашего текущего фрагмента.

Что вы должны сделать?

3 различные решения я могу вам предложить:

1) Отправить запрос на сервер в функции onPageSelected(int position)

2), если вы используете actionBar вкладка использовать onTabSelected и отправить запрос на сервер.

3) отправьте свой запрос на onResume вашего фрагмента, используя setUserVisibleHint и getUserVisibleHint функцию, чтобы определить, когда ваш фрагмент действительно виден вашему пользователю, поэтому отправьте его в нужное время.

+0

спасибо за советы! Я попробовал ваше третье решение. но вместо отправки запроса в 'onResume', я сделал это в' setUserVisiblieHint'. Я проверяю, не был ли ранее отправлен запрос и 'isVisibleToUser == true', а затем отправить запрос. работает как ожидалось! – user1865027

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