ViewPager - onCreateView wird nicht immer aufgerufen

9

Ich habe einen ViewPager mit 10 Seiten. Wenn ich die letzte (10.) Seite starte, wird onCreateView() Methode meines Fragments aufgerufen. Wenn ich auf die 9. Seite wische, wird onCreateView() auch aufgerufen. Aber wenn ich auf die 10. Seite zurückkomme, wird onCreateView() nicht aufgerufen. Was ist los?

    
Bakus123 29.08.2014, 18:32
quelle

6 Antworten

5

Versuchen Sie, FragmentStatePagerAdapter zu erweitern

    
Vinay 07.04.2017 05:40
quelle
2

Das liegt daran, dass ein FragmentPagerAdapter jedes Fragment im Speicher hält. Wenn Sie also das erste Mal das Fragment besuchen, wird onCreate aufgerufen, aber das zweite Mal sucht Android im Speicher, sodass onCreate nicht aufgerufen werden muss.

Wenn Sie den Code in OnCreate jedes Mal ausführen müssen, wenn das Fragment angezeigt wird, sollten Sie es in getItem (int id)

verschieben

Siehe offizielle Dokumentation: Ссылка

    
Fran b 29.08.2014 18:53
quelle
1

Sie können den Adapter getItem von onPageSelect aufrufen, der auch bei swipes aufgerufen wird, und Ihren Code in das getItem oder sogar in den onPageSeelect selbst einfügen.

    
Zvi 05.03.2016 14:11
quelle
1

Ich hatte das gleiche Problem, meine Lösung war, den Adapter der ViewPager-Instanz erneut zuzuweisen, genau wie:

%Vor%

Dies verursacht einen Neustart der "mItems" -Eigenschaft aus dem viewPager und entfernt den Cache.

Aber ich weiß nicht, ob es eine sichere Lösung ist

    
Sergio Magoo Quintero 12.03.2016 00:20
quelle
0

Nichts ist falsch. Die ViewPager hat die Seite bereits und muss daher nicht erstellt werden.

    
CommonsWare 29.08.2014 18:48
quelle
0

CommonWare's Antwort ist die beste und funktioniert wie Charme: Fügen Sie einfach OnPageChangeListener zu Ihrem ViewPager -Element hinzu, etwa so:

%Vor%     
JamesC 12.12.2016 10:57
quelle