Ich habe drei Seiten (Fragmente) in einem ViewPager, möchte jedoch nur einen Menüpunkt für zwei dieser Seiten anzeigen.
Der in einer früheren SO-Antwort angegebene Code scheint nicht zu funktionieren:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser == true) { }
else if (isVisibleToUser == false) { }
}
Eclipse sagt, dass @Override nicht benötigt wird und Super nicht eingestellt werden kann. Es wird vom System nie aufgerufen, und selbst wenn es so wäre, würde ich feststellen, welche Seite gerade angezeigt wird? Könnte ich hier etwas Hilfe haben?
android
android-widget
android-viewpager
Andrew Rabon
quelle
quelle
Antworten:
Verwenden Sie die
ViewPager.onPageChangeListener
:quelle
ViewPager.setOnPageChangeListener
ist jetzt veraltet. Sie müssen jetztViewPager.addOnPageChangeListener
stattdessen verwenden.beispielsweise,
quelle
addOnPageChangeListener
.ViewPager.SimpleOnPageChangeListener
undViewPager.OnPageChangeListener
wie oben erwähnt?Sie können auch verwenden ,
ViewPager.SimpleOnPageChangeListener
anstattViewPager.OnPageChangeListener
nur die Methoden und überschreiben Sie verwenden möchten.Ich hoffe das hilft :)
Bearbeiten: Laut Android APIs
setOnPageChangeListener (ViewPager.OnPageChangeListener listener)
ist veraltet. Bitte überprüfen Sie diese URL: - Android ViewPager APIquelle
mViewPager.setOnPageChangeListener();
jetzt veraltet, funktioniert dieser gut.Kotlin Benutzer ,
Update 2020 für ViewPager2
quelle
Für ViewPager2
Wo
OnPageChangeCallback
ist eine statische Klasse mit drei Methoden:quelle