ViewPager onPageSelected для первой страницы
Таким образом, получается, что при использовании ViewPager прослушиватель onPageSelected не вызывается для первой страницы, такой же, какэтот.
У меня есть логика, которая заполняет некоторые более дорогие элементы пользовательского интерфейса для текущей выбранной страницы, и это работает, когда страница изменяется, ноit doesn't work for the first page.
Если я устанавливаю текущий элемент после слушателя, обратный вызов запускается для первой страницы, но представление еще не было инициализировано, поэтому я не могу манипулировать им:
// Inside PagerAdapter.instantiateItem
ViewHolder vh = new ViewHolder();
cursor.moveToPosition(position);
vh.view = adapter.newView(context, cursor, null);
// Set position as tag so we can retrieve it with findViewByTag
vh.view.setTag(position);
((ViewPager) collection).addView(vh.view,0);
return vh;
// Inside MyActivity.onCreate
pagerAdapter = new SingleMessagePagerAdapter(this, cursor);
pager = (ViewPager)findViewById(R.id.message_pager);
pager.setAdapter(pagerAdapter);
pager.setOnPageSelectedListener(this);
pager.setCurrentItem(selectedItem);
// Inside MyActivity.onPageSelected
// Retrieve tagged view
View view = pager.findViewWithTag(position);
Вотview
заканчивается нулем, потому чтоPagerAdapter.instantiateItem
еще не был запущен. Поэтому я предполагаю, что мой вопрос заключается в том, в какой момент жизненного цикла действия я могу быть уверен, что ViewPager инициализировал представление? Я пытался сделать это внутриActivity.onAttachedToWindow
а такжеActivity.onResume
но, похоже, оба они были уволены раньшеPagerAdapter.instantiateItem
.