Das Problem, mit dem ich konfrontiert wurde, ist, dass der ViewPager nicht onPageSelected für das Element 0 aufruft. Codebeispiel:OnPageSelected wird nie für das erste Element aufgerufen?
public class PagerActivity extends ActionBarActivity implements ViewPager.OnPageChangeListener {
private static final String TAG = PagerActivity.class.getCanonicalName();
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pager);
mViewPager = (ViewPager) findViewById(R.id.view_pager);
mViewPager.setAdapter(new ViewAdapter());
mViewPager.setOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.e(TAG, "position = " + position);
}
@Override
public void onPageSelected(int position) {
Log.e(TAG, "selected page = " + position);
}
@Override
public void onPageScrollStateChanged(int state) {
Log.e(TAG, "state = " + state);
}
private class ViewAdapter extends PagerAdapter {
@Override
public int getCount() {
return 5;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ViewGroup viewGroup = (ViewGroup) LayoutInflater.from(container.getContext())
.inflate(R.layout.view_pager_item, container, false);
TextView textView = (TextView) viewGroup.findViewById(R.id.page_indicator);
textView.setText("Page position = " + position);
container.addView(viewGroup);
return viewGroup;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((ViewGroup) object);
}
}
Ich habe keine bestimmte Aufgabe zu, dass im Zusammenhang, nur wissen wollte:
Ist es ein bekanntes Problem, und was ist die beste Lösung?
Ist es nur entworfen, um so zu arbeiten?
Sie also bedeuten Sie nur die Position sein Vor der Initialisierung von mir selbst? –
Ja ... @YuriiTsap versuche den vollen Code mit pageChangeListener sollte es funktionieren –
Ich kann nur eine Überprüfung innerhalb der instanziate-Methode If (Position == 0) onPageSelected (0), aber es ist nicht so elegant wie für mich. –