Eu tenho três páginas (fragmentos) dentro de um ViewPager, no entanto, só quero exibir um item de menu para duas dessas páginas.
O código fornecido em uma resposta anterior do SO não parece funcionar:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser == true) { }
else if (isVisibleToUser == false) { }
}
O Eclipse diz que o @Override não é necessário e o super não pode ser definido. Ele nunca é chamado pelo sistema, e mesmo se fosse como eu determinaria qual página estava sendo exibida no momento? Eu poderia ter alguma ajuda aqui?
android
android-widget
android-viewpager
Andrew Rabon
fonte
fonte
Respostas:
Use o
ViewPager.onPageChangeListener
:fonte
ViewPager.setOnPageChangeListener
está obsoleto agora. Agora você precisa usarViewPager.addOnPageChangeListener
.por exemplo,
fonte
addOnPageChangeListener
.ViewPager.SimpleOnPageChangeListener
eViewPager.OnPageChangeListener
como mencionamos acima?Você também pode usar em
ViewPager.SimpleOnPageChangeListener
vez deViewPager.OnPageChangeListener
substituir apenas os métodos que deseja usar.Espero que esta ajuda :)
Editar: de acordo com as APIs do Android,
setOnPageChangeListener (ViewPager.OnPageChangeListener listener)
está obsoleto. Verifique este URL: - API do Android ViewPagerfonte
mViewPager.setOnPageChangeListener();
está obsoleto agora, este está funcionando bem.Usuários Kotlin ,
Atualização 2020 para o ViewPager2
fonte
Para o ViewPager2,
onde
OnPageChangeCallback
é uma classe estática com três métodos:fonte