android - Wie ändere ich die ViewPager-Seite?




2 Answers

Ohne Ihren Code zu überprüfen, denke ich, dass Ihre Seiten nicht synchron sind und Sie veraltete Daten haben.

Sie sagen, dass Sie die Anzahl der Seiten ändern und dann abstürzen, weil Sie auf die alten Seiten zugreifen. Das klingt für mich so, als würden Sie pageAdapter.notifyDataSetChanged() nicht aufrufen, nachdem Sie Ihre Daten pageAdapter.notifyDataSetChanged() .

Wenn Ihr viewPager Seite 3 eines Satzes von 10 Seiten zeigt und Sie zu einem Satz mit nur 5 wechseln, dann rufen Sie notifyDataSetChanged() . Sie werden feststellen, dass Sie nun Seite 3 des neuen Satzes sehen. Wenn Sie zuvor Seite 8 des alten Sets angesehen haben, sehen Sie nach dem notifyDataSetChanged() des neuen Sets und dem Aufruf von notifyDataSetChanged() , dass Sie jetzt die letzte Seite des neuen Sets sehen, ohne zu stürzen.

Wenn Sie einfach Ihre aktuelle Seite ändern, maskieren Sie möglicherweise nur das Problem.

android android-viewpager

Ich verwende ViewPager in meiner App und definiere es in der Hauptaktivität. Inside onCreate Methode Ich lade einige Seiten von SharedPreferences und gebe sie dann an PagerAdapter weiter:

@Override
public int getCount() {
    return numberOfPages;
}

Das Problem ist, dass meine App abstürzt, wenn ich diese Nummer in den Einstellungen (oder einer anderen Aktivität) in einen anderen weniger als den zuvor angezeigten Seitenindex ändere, da dieser Index außerhalb der Grenzen liegt, wenn ich mit diesem ViewPager zu der Aktivität zurückkehre. Es kann einfach durch Ändern der aktiven ViewPager-Seite behoben werden. Gibt es einen Weg, es zu tun?




nach rechts schieben

viewPager.arrowScroll (View.FOCUS_RIGHT);

nach links schieben

viewPager.arrowScroll (View.FOCUS_LEFT);




Related