onPause pas appelé dans Fragment présent dans FragmentStatePagerAdapter

  • Auteur de la discussion xyloweb
  • Date de début
xyloweb

xyloweb

Membre
Inscrit
10 Février 2019
Messages
2
Points
1
  • #1
Bonjour à tous,

Voilà j'ai un petit problème avec la callback onPause.

J'utilise FragmentStatePagerAdapter avec 3 TabLayout (A, B et C)
Lorsque l'utilisateur quitte C je souhaite pouvoir désactiver automatiquement le clavier virtuel via la callback onPause.

Ça marche bien lorsque je quitte C pour A mais pas lorsque je quitte C pour B (dans ce cas onPause n'est pas appelé !)

Avez-vous une idée ?
 
xyloweb

xyloweb

Membre
Inscrit
10 Février 2019
Messages
2
Points
1
  • #2
On ne peut pas utiliser onPause dans ce cas et c'est normal (gestion cache des tabs…)

Ma solution (inspirée de Stackoverflow)

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}

@override
public void onTabUnselected(TabLayout.Tab tab) {
if( tab.getText().toString().compareTo(getString(R.string.tabAddStopCode)) == 0 ) {
InputMethodManager imm = (InputMethodManager) getSystemService(getApplicationContext().INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(tabLayout.getApplicationWindowToken(), 0);
}
}

@override
public void onTabReselected(TabLayout.Tab tab) {
}
});
 
Haut Bas