2017-09-25 2 views
0

J'ai un code simple qui fonctionne bien. Il commence par frag1 appelle frag2 puis frag3. Le bouton de retour fonctionne bien aussi.Problème avec backPressed dans une vue Web et en même temps naviguer dans les fragments

J'utiliser ce code pour instancier le fragment:

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
       Frag2 f2 = new Frag2(); 
       ft.replace(R.id.content_frame, f2); 
       ft.addToBackStack(null); 
       ft.commit(); 

En même temps, j'ai un WebView dans l'un des fragments et je veux naviguer sur le web alors j'ai ajouté ce code à l'intérieur:

@Override 
    public void onBackPressed() 
    { 
     WebView webView = null; 
     if(webView == null) return; 

     if(webView.canGoBack()) 
      webView.goBack(); 
     else 
      super.onBackPressed(); 
    } 

et cela fonctionne bien MAIS je perds le bouton retour de fragment.

J'ai essayé de déplacer le backpressed à l'intérieur du fragment qui instancie WebView mais je reçois la méthode msg: ne remplace pas la méthode de sa super classe.

Qu'est-ce que je fais mal ici?

Répondre

0

Erreur stupide. Il fonctionne bien avec ce code:

@Override 
    public void onBackPressed() 
    { 
     if(webView != null && webView.canGoBack()) 
      webView.goBack(); 
     else 
      super.onBackPressed(); 
    } 

auparavant je n'allais jamais à super.onBackPressed();