ViewPager.instantiateItem () позиция - PullRequest
       0

ViewPager.instantiateItem () позиция

2 голосов
/ 17 декабря 2011

Я пытаюсь выяснить абсолютную позицию представления, но пока это больше похоже на относительную позицию, которая проходит, но опять же, иногда кажется, что она основана на чистой случайности?

Посмотрите на этот вывод, который я получаю из моего ViewPager, переключаясь между 5 представлениями вперед, назад и вперед, я не могу найти в нем никакого шаблона:

size: 0, pos: 0
size: 1, pos: 1
size: 2, pos: 2
size: 2, pos: 3
size: 2, pos: 4
size: 2, pos: 2
size: 3, pos: 1
size: 3, pos: 0
size: 2, pos: 2
size: 2, pos: 3
size: 2, pos: 4

По сути, я пытаюсь получить соответствующий ListAdapter для каждого ListView в моем ViewPagerAdapter, а затем установить их в соответствии с их соответствующими представлениями (ListAdapter для первого списка добавляется к первому представлению, например.), Однако это нарушается, поскольку позиция, заданная в качестве аргумента в instantiateItem, похоже, не соответствует какому-либо шаблону.

Итак, есть ли способ узнать, какова абсолютная позиция представления в PagerView?

1 Ответ

0 голосов
/ 18 декабря 2011

Хорошо - я просто исправил проблему сам, то, что я думал, что проблема на самом деле не была, я просто думаю, что неправильно понял, как работает instantiateItem. То, что я пытался сделать, это получить текущий ListAdapter из моего ViewPager, и я, конечно, тогда подумал, что мог бы также извлечь его из ViewPager.getChildAt (), но это, конечно, не правильная процедура, поскольку ViewPager запоминает текущий вид и один вид вперед и назад. Правильный способ сделать это - сохранить представления в ViewPagerAdapter, а затем извлечь представления оттуда, когда вам нужно сослаться на них.

...