Что происходит: первые две страницы ViewPager загружены красиво (ViewPager автоматически загружает + -1 с текущей страницы). Когда вы прокручиваете их, следующие страницы не отображаются. GIF ниже описанной проблемы.
Отладочная информация. Страницы создаются (см. код ниже) и успешно добавляются в ViewPager ArrayList<ItemInfo>mItems
(подтвержденные через сообщения журнала). Я перекомпилировал библиотеку android.support.v4
с параметром debug = true (mmm frameworks/support/v4/
в aosp), и он показывает все, что работает отлично. ЗА ИСКЛЮЧЕНИЕМ:
Методы onLayout и onMeasure в ViewPager перестают вызываться после загрузки первых двух представлений. Это означает, что другие страницы являются черными, потому что они никогда не были измерены и расположены так, как они должны были быть. Я попробовал добавить разные вызовы requestLayout() в разных точках, чтобы заставить обновление дерева макетов безрезультатно.
Фон. У меня есть ViewPager, созданный через inflater.inflate и найденный через view.findViewById(R.layouy.myid). Он непосредственно заменяет старый вид галереи, и для целей тестирования элемент instantagerItem PagerAdapter (коллекция, позиция) просто делает это:
@Override
public Object instantiateItem(View collection, final int position) {
final TextView tv = new TextView(collection.getContext());
tv.setText("Looking at page " + position);
tv.setTextColor(Color.WHITE);
tv.setBackgroundColor(Color.rgb( (int)(Math.random()*100), (int)(Math.random()*100), (int)(Math.random()*100)));
tv.setTextSize(22);
((ViewPager) collection).addView(tv);
return tv;
}
Любые идеи? Мне кажется, что некоторые настройки тайны в родителях PageView каким-то образом отключают onLayout PageView