|
33 / 35 / 9
Регистрация: 03.02.2017
Сообщений: 141
|
|
Как обновить данные ViewPagera отдельного фрагмента?21.08.2017, 23:03. Показов 2213. Ответов 6
Метки нет (Все метки)
Есть пейджер с тремя страницами. Меняется лишь содержимое третьей страницы. Имея ссылку на фрагмент можно вызывать необходимые методы по обновлению данных. Проблемы возникают при смене ориентации телефона.
Дело в том, что FragmentPagerAdapter вызывает метод для создание фрагментов public Fragment getItem(int position) лишь один раз - во время своего первого создания. При повороте экрана телефона эти фрагменты не пересоздаются с нуля - они лишь извлекаются из стека менеджером фрагментов со старыми данными переданными в агрументе. В интернетах люди подсказали, что адаптер записывает фрагменты в стек с тегом: "android:switcher:" + containerViewId (R.id.pager) + ":" + itemPosition. Но попытка извлечь из менеджера фрагментов желанный фрагмент с соответствующим тегом выдает null. Как получить ссылку на необходимый фрагмент? Предлагали еще шаманить с методами public Object instantiateItem(ViewGroup container, int position), public void destroyItem(ViewGroup container, int position, Object object), сохраняя фрагменты в кеш но при смене ориентации этот механизм не работает. Можно, конечно, ухищряться и обновлять данные во фрагменте посылая ему броадкасты, но есть ли более вменяемый способ достучаться до фрагмента вьюпейджера без обновления всех данных?
0
|
|
| 21.08.2017, 23:03 | |
|
Ответы с готовыми решениями:
6
Как сделать запрос к базе данных для выгрузки только отдельного фрагмента? Копирование отдельного фрагмента схемы Как прочитать многострочные данные из файла с указанного фрагмента до указанного фрагмента? |
|
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
| 22.08.2017, 10:47 | |
|
пусть фрагмент сам обращается за данными в onResume
1
|
|
|
33 / 35 / 9
Регистрация: 03.02.2017
Сообщений: 141
|
||
| 22.08.2017, 17:47 [ТС] | ||
|
Пейджер запрашивает сразу 3 страницы (для анимации переходов между ними): текущая, +1 и -1. Если активная вторая страница то пейджер имеет одновременне все 3 горячих фрагмента и onResume не будет вызываться. Как следствие, данные не будут подтягиваться. Это сработает если активна первая страница, то есть пейджер имеет ссылки на страницу 0, 1 и при переходе на третью страницу пейджер оживит фрагмент с новыми данными. Хорошая была идея но пока как я виже нужна ссылка на фрагмент.
0
|
||
|
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
| 22.08.2017, 18:05 | |
|
onResume будет вызываться на том фрагменте, который на экране
на котором и нужно обновить данные на тех, которые не видны - обновлять данные бестолку Добавлено через 1 минуту подозреваю, что эта тема похожа на Обновление данных в ViewPager при перелистывании вкладок
0
|
|
|
33 / 35 / 9
Регистрация: 03.02.2017
Сообщений: 141
|
||
| 22.08.2017, 19:04 [ТС] | ||
|
0
|
||
|
14 / 13 / 4
Регистрация: 11.08.2016
Сообщений: 87
|
||||||
| 22.08.2017, 22:18 | ||||||
|
Не уверен что до конца понял проблемму из-за плохого знания матчасти, но попробуйте такую реализацию.
По сути это получение того же "android:switcher:" + containerViewId (R.id.pager) + ":" + itemPosition. Но только если если разработчики захотят что-то изменить в виде записи то ваше приложение от этого не должно пострадать
0
|
||||||
|
33 / 35 / 9
Регистрация: 03.02.2017
Сообщений: 141
|
||||||||||||
| 22.08.2017, 23:08 [ТС] | ||||||||||||
|
FragmentStatePagerAdapter
![]() Я, впринципе, немножко разкурил его и решил задачу но я хочу найти более элегантное решение. Время терпит.
0
|
||||||||||||
| 22.08.2017, 23:08 | |
|
Помогаю со студенческими работами здесь
7
Казус с выгрузкой отдельного фрагмента информации из XML файла Как обновить данные на форме у клиентов, сразу же когда обновились данные в базе Как обновить данные отчета? Как обновить данные в форме? Как обновить данные в таблице из формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|