2016-12-19 3 views
0

Структура: CoordinatorLayout -> AppBarLayout + ViewPagerFragmentPagerAdapter setPrimaryItem называется несколько раз

Scroll RecyclerView или другие жесты бросить setPrimaryItem в ViewPager. Вызывается из ViewPager.onMeasure. Его нормальное поведение?

(поддержка ЛИЭС 25.1.0)

Микроэлементы:

enter image description here

+0

Да, это ожидается. Я заметил, что ViewPager слишком часто вызывает методы адаптера, и я полагаю, что Google написал код таким образом, чтобы обрабатывать различные угловые случаи. Вы должны написать свой код адаптера для правильной работы, даже если ваши методы вызывают несколько раз. –

ответ

0

ViewPager звонки setPrimaryItem() в это Заселите метод.

ViewPager.populate()

Метод Заселите в свою очередь, вызывается в нескольких случаях, но очень важно, один (по крайней мере, для выяснения этих многочисленных вызовов) является onMeasure() вызов.

ViewPager.onMeasure()

Посмотрите, как 851. Все, что вызывает иерархию вида на перемеривать собираемся привести к вашему адаптеру получает это основные вызовы элемента набора снова.