ViewPager onPageSelected dla pierwszej strony
Wygląda więc na to, że podczas korzystania z ViewPager nasłuchiwanie onPageSelected nie jest wywoływane dla pierwszej strony tego samego problemu coto.
Mam pewną logikę, która wypełnia niektóre droższe elementy interfejsu użytkownika dla aktualnie wybranej strony i działa, gdy strona jest zmieniana, aleit doesn't work for the first page.
Jeśli ustawię bieżący element za słuchaczem, wywołanie zwrotne zostanie uruchomione dla pierwszej strony, ale widok nie został jeszcze zainicjowany, więc nie mogę go manipulować:
// 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);
Tutajview
kończy się na zerowej, ponieważPagerAdapter.instantiateItem
nie został jeszcze uruchomiony. Domyślam się, że moje pytanie brzmi: w którym momencie cyklu życia aktywności mogę być pewien, że ViewPager zainicjował widok? Próbowałem to zrobić w środkuActivity.onAttachedToWindow
iActivity.onResume
ale wydaje się, że oba zostały wcześniej zwolnionePagerAdapter.instantiateItem
.