2015-04-22 5 views
5

Ich habe eine Hauptaktivität mit einem Fragment-Layout. Die Schublade hat 3 Option:Wie Schublade in Fragment zu deaktivieren und wieder zurück zu korrigieren Fragment

Fragment[1], Fragment[2], Fragment[3].

Innen Fragment [2] und Fragment [3] ist eine Taste. Dieser Knopf öffnet ein anderes Fragment. Fragment [4].

Ich möchte Fragment [4] ohne Schublade aber mit einem Zurück-Knopf.

Dies ist der onClick Code in Fragmente [2]

Fragment fragment = new InstalacionesEncontradasFragment(); 
Bundle bundle = new Bundle(); 
bundle.putSerializable("key", this.instalacionesConCategorias); 
fragment.setArguments(bundle); 
FragmentManager fragmentManager = getFragmentManager(); 

FragmentTransaction mFragmentTransaction = fragmentManager.beginTransaction(); 
mFragmentTransaction.addToBackStack(null); 
mFragmentTransaction.replace(R.id.main_frame_container, fragment, "ACTIVIDADES").commit(); 

Und in Fragmente [4]

onCreate Methode:

getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); 

Aber diese Lösung funktioniert nicht.

Wie die Schublade zu deaktivieren? Wo sollte ich den Zurück-Button implementieren? In Fragment [2] oder Fragment [3]?

Antwort

9
  1. können Sie verwenden:

    mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 
    

    Dies wird Schubladenöffnung sperren auf swipe

  2. Fügen Sie die Zeile

    getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); 
    

in Tätigkeit, die alle Fragmente macht lik e Fragment 1, 2,3 und 4. In Ihrem Fall ist Fragment 4 von einer anderen Aktivität als Fragment 2. So funktioniert die Zurück-Taste nicht.

+0

Wo schreibe ich "mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 'Fragment [4] hat mDrawerLayout nicht deklariert – aldakur

+0

Entweder übergeben Sie die Variable an' fragment4' oder verwenden Sie sie, indem Sie 'static' machen – Kushal

+0

Vielen Dank. 'öffentliche statische DrawerLayout mDrawerLayout;' in Hauptaktivität ist eine gute Lösung. Dann instanziiere ich es als public DrawerLayout mDrawerLayout = Main.mDrawerLayout; in Fragment [4]. Ist es o.k? – aldakur

Verwandte Themen