Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
1

Пересоздание Fragment при листании, как избавиться?

27.09.2014, 08:06. Просмотров 1293. Ответов 12
Метки нет (Все метки)

Попробовал сделать таб-слайдер. Закладки с возможностью листать их слайдом.
Столкнулкся с неожиданной "особенностью". Каждая страница-закладка является фрагментом (не знаю как от этого избавиться). В страницу поместил список на основе адаптера. При листании фрагменты ПЕРЕСОЗДАЮТСЯ!
Не знаю почему и не знаю как от этого избавиться! В результате получаю то, что список всегда прыгает наверх. Теоретически могу конечно использовать очередной "костыль" - запоминать и востанавливать позицию в списке до последнего пиксела, но можно ли от этого избавиться???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2014, 08:06
Ответы с готовыми решениями:

Как победить подтормаживание при листании ViewPager со списками listview?
Как победить подтормаживание при листании ViewPager со списками listview? ...

Запретить пересоздание Activity при повороте экрана
В общем, проблема в заголовке. Собственно сам конфиг из манифеста <activity...

Обновление fragment из другого fragment
Добрый вечер всем!! Подскажите пожалуйста как обновить один фрагмент из другого...

Поворот экрана и пересоздание обьектов. Как делают матёрые разработчики?
Разрабатываю приложение, решил делать одно активити и FrameLayout в нем, куда...

Жизненный цикл Activity и Fragment при повороте
Ребят запутался я совсем. Помогите разобраться. Насколько я знаю при повороте...

12
Max64
20 / 20 / 7
Регистрация: 27.10.2012
Сообщений: 156
28.09.2014, 21:35 2
Цитата Сообщение от Tester64 Посмотреть сообщение
не знаю как от этого избавиться
Не надо от этого избавляться

Вообще у ViewPager-а попробуйте вызвать метод setOffscreenPageLimit(int limit) http://developer.android.com/referen...Limit%28int%29, в аргумент передайте кол-во табов.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
29.09.2014, 23:25  [ТС] 3
Цитата Сообщение от Max64 Посмотреть сообщение
Вообще у ViewPager-а попробуйте вызвать метод setOffscreenPageLimit(int limit) http://developer.android.com/referen...Limit%28int%29, в аргумент передайте кол-во табов.
Идея класная и кажется даже то что нужно, но почему-то не вызывается!
Говорит не знает такого метода. Показывает красным. Но в онлайн-хелпе нашел...
0
Max64
20 / 20 / 7
Регистрация: 27.10.2012
Сообщений: 156
29.09.2014, 23:32 4
Какой текст ошибки? Класс ViewPager импортирован?
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
30.09.2014, 14:48  [ТС] 5
Ненавижу закрытые библиотеки!!!!

У меня засбоила студия - сломалось обновление SDK. Не мог скачать актуальную android.support.v4. Нашел ее в одном из примеров слайд-закладок. На 543Кб. Потом нашел "облегченную" на 136, которая тоже работала. Построил на ней логику. Оказывается она либо слишком старая, либо слишком облегченная. И в ней нет метода setOffscreenPageLimit. Нашел более новую в инете (аж на 740Кб), метод там есть, но теперь ВЕСЬ проект глючит! Прийдется перебирать логику закладок с нуля...

А можно избавиться от библиотеки android.support.v4??? Напрямую ее исходники вставлять? Только самое нужное?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
30.09.2014, 15:16 6
Цитата Сообщение от Tester64 Посмотреть сообщение
А можно избавиться от библиотеки android.support.v4??? Напрямую ее исходники вставлять? Только самое нужное?
Дак ведь при компиляции из нее компилятор и выберет только то что нужно. Не будет же приложение все либы полностью за собой таскать.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
30.09.2014, 15:23  [ТС] 7
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Дак ведь при компиляции из нее компилятор и выберет только то что нужно. Не будет же приложение все либы полностью за собой таскать.
Хоть этим успокоили. Хотя не уверен до конца что есть механизм "это нужно - ата картинка не нужна"...

Но я бы предпочел положить только *.java файлы всесто целой библиотеки. И исходники сокращу и доступ полный и контроль версий у меня в руках - если изменится в худшую сторону только один из классов библиотеки с улучшением другого...
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
30.09.2014, 15:36 8
Цитата Сообщение от Tester64 Посмотреть сообщение
Хотя не уверен до конца что есть механизм "это нужно - ата картинка не нужна"
Ну а как по другому то? Компилятор же все видит и знает) Если к картинке никто не обращается он про ее существование и не узнает по-моему.

Добавлено через 27 секунд
Не факт конечно. Из личных наблюдений)
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
30.09.2014, 17:47  [ТС] 9
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Из личных наблюдений
А я заметил обратное! Если случайно в ресурсах оставил много-мегабайтные картинки, когда ВООБЩЕ не использую картинки, файл получатся многомегабайтным! Ведь обращение к картинке происходит всего-лишь по его коду-индексу. А его можно использовать в любом месте задав через int. Про левые java не знаю, но ошибки в них тоже проверяются, даже если их не использую. Возможно что-то другое происходит в релиз сборке (а не дебюг), но сомневаюсь! Похоже у явы ТУПОЙ компилятор - есть файл = добавляет! Без оптимизаций, как в С++ и в Делфи.
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
30.09.2014, 17:59 10
Ну с файлом тут немножко не так, при его копировании в папку на него создается ссылка в R.class, думаю, по этой причине добавляет.
0
Max64
20 / 20 / 7
Регистрация: 27.10.2012
Сообщений: 156
30.09.2014, 21:07 11
Цитата Сообщение от Tester64 Посмотреть сообщение
Не мог скачать актуальную android.support.v4
А почему ее приходится скачивать фиг знает где? Средствами IDE легко же добавить в проект

Цитата Сообщение от Spelcrawler Посмотреть сообщение
Дак ведь при компиляции из нее компилятор и выберет только то что нужно. Не будет же приложение все либы полностью за собой таскать.
именно будет таскать все либы только участвует в этом не компилятор а build tool - ant или gradle
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Ну с файлом тут немножко не так, при его копировании в папку на него создается ссылка в R.class, думаю, по этой причине добавляет.
Да, если добавить картинку в одну из директорий /res/drawable, для нее генерируется id в классе R, через который она доступна в коде; если добавить картинку в директорию /assets, для нее не будет сгенерирован id и она будет доступна в коде через InputStream. Ни в какие другие директории кроме /res и /assets не надо добавлять картинки и другие ресурсы, т.к. в итоговом файле apk их не будет.

Вот тут хорошо описан процесс сборки в картинках
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
30.09.2014, 22:02  [ТС] 12
Цитата Сообщение от Max64 Посмотреть сообщение
А почему ее приходится скачивать фиг знает где? Средствами IDE легко же добавить в проект
Согласно инструкциям, файл android-support-v4.jar нужно брать из папки SDK после его скачивания при обновлении средствами самого SDK. У меня в папке его не нашел. Пришлось брать из lib папок чужих проектов. Подключил легко, но оказалось чт у этого файла бывают разные релизы. Чем они отличаются так и не понял. Кроме размера и наличия метода setOffscreenPageLimit.

Кто-нибудь знает, можно ли раздобыть чистые исходники из android-support-v4 и обойтись без самой библиотеки?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
01.10.2014, 08:31 13
Цитата Сообщение от Max64 Посмотреть сообщение
именно будет таскать все либы
Ну не знаю, заметил такое, когда подключил либу весом около 500кб, но так и не использовал ее - приложение осталось такого же размера, как и до этого.
Цитата Сообщение от Tester64 Посмотреть сообщение
Кто-нибудь знает, можно ли раздобыть чистые исходники из android-support-v4 и обойтись без самой библиотеки?
Не знаю точно, но у меня при использовании каких нибудь функций из этой либы она автоматом добавляется в ExternalLibrares.
0
01.10.2014, 08:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2014, 08:31

Fragment некорректно работает при повороте устройства
При выводе на экран фрагмента после поворота устройства получаю такую ошибку: ...

Ошибка при конвертации класса Activity в Fragment (SherlockFragment)
есть такой класс public class MainActivity extends Activity { ...

Сохранить позицию при перетаскивании элемента в списке RV in Fragment
Подскажите как сохранить позицию при перетаскивании элемента в списке RV in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru