0

Wie Fragment einzuchecken Aktivität sichtbar ist OnBackpressedWie Fragment zu überprüfen, ist in Aktivität sichtbar OnBackpressed

ich überprüfen möchten, wenn der Benutzer-Taste in Searchfragment klicken back OnBackpressed ausgeführt wird, aber wenn Benutzer klicken Zurück-Schaltfläche festlegen möchten In OtherFragment möchte ich festlegen, dass OnBackpressed nicht ausgeführt wird.

und ich versuche, dies in Aktivität nicht

btn_back.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       SearchFragment searchFragment = new SearchFragment(); 
       if (searchFragment.isVisible()){ 
        onBackPressed(); 
       } 

      } 
     }); 

Dank für Ihre Hilfe wird die Arbeit!

Antwort

1

Vor allem, wenn Sie so etwas wie dies erklären:

SearchFragment searchFragment = new SearchFragment(); 

Und dann rufen Sie

searchFragment.isVisible() 

Dies wird sich natürlich false zurückkehren, da Sie den Ball hielt auch sie dem Container hinzufügen. Sie müssen die Fragment-Instanz abrufen, die Sie bereits hinzugefügt haben, und den Status überprüfen.

Ich habe einmal versucht, die Methode isVisible() zu verwenden, aber es ist nicht ganz genau, zumindest nicht für meinen Fall. Was ich herausgefunden habe, ist das obere Fragment im Container wie folgt zu überprüfen:

Fragment fragment = getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment_container); 
if(fragment instance of SearchFragment) //means your visible fragment is the SearchFragment 
    onBackPressed(); 
+0

danke! es ist Arbeit –

+0

Sie sind willkommen :) – Ricardo

Verwandte Themen