Путаница с позицией в функции instantiateItem в классе PagerAdapter (android) - PullRequest
4 голосов
/ 11 февраля 2012

В настоящее время я прохожу учебное пособие по горизонтальному просмотру страниц: http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/

В целях тестирования я добавил следующую строку в качестве первой строки в функции instantiateItem (...):

Log.d("SimpleViewPagerActivity", "Position " + position);

(следующее сбивает с толку, поэтому было бы лучше, если бы вы сами попробовали пример, чтобы увидеть, о чем я говорю в следующем абзаце): в этом примере есть 5 позиций ViewPager(которые начинаются с нуля), и действие устанавливается на начало позиции 2. Когда я запускаю действие, журнал сообщает, что начальная позиция изменяется с 1, затем 2, а затем 3. Если я проведу пальцем влево, журнал говоритпозиция 0. Когда я снова проведу влево, сообщения журнала нет.Отсюда я проведу пальцем вправо, и теперь позиция 2. Я снова проведу вправо, а позиция 3. Я проведу пальцем по другим позициям справа и получу результаты, которые не могу объяснить.

* 1009Может кто-нибудь объяснить переменную 'position' в instatiateItem () или указать мне где-нибудь, где это объясняется?В данный момент я использую пакет Android Compatibility v.6

1 Ответ

9 голосов
/ 11 февраля 2012

Внутри instantiateItem параметр position - это позиция, которая нуждается в рендеринге. Это НЕ позиция текущего сфокусированного элемента, которую увидит пользователь. Страницы слева и справа от отображаемого в данный момент представления должны предварительно отображаться в памяти, чтобы анимация на этих экранах была плавной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...