2016-05-04 18 views
0

Wie Sie verhindern, dass ein Fragment in der Navigationsleiste geöffnet wird, wenn dieses Fragment bereits geöffnet ist. Zum Beispiel habe ich ein Settings-Fragment in meinem Nav Drawer zuerst, wenn ich auf das Fragment klicke, das es öffnet. Wenn ich nun klicke, sollte es nicht das gleiche Fragment zweimal öffnen, da dies ein Problem beim Zurückschlagen des Buttons verursacht.So verhindern Sie, dass ein Fragment in der Navigationsleiste geöffnet wird, wenn dieses Fragment bereits geöffnet ist

+0

wo ist der Code? –

Antwort

0

Sie können die Position des Fragments in der Liste beibehalten, die gerade geöffnet ist. B. eine Variable namens mSelectedPosition, die in onCreate() auf -1 initialisiert wird. Dann wird der Code in Ihrem onItemClick() im DrawerItemClickListener kann möglicherweise so etwas wie

if (position == mSelectedPosition) { 
    closeDrawer(); 
    return; 
} 

mSelectedPosition = position; 
// Continue your work here. 
0

sein, sollten Sie das neue Fragment an der onDrawerClosed() Rückruf ändern. Pflegen Sie eine Elementvariable wie currentFragmentPosition.

public void onDrawerClosed(View view) 
{ 
    super.onDrawerClosed(view); 

    if(clickedPosition != currentFragmentPosition) 
    { 
     // change Fragment 
    } 
    currentFragmentPosition = clickedPosition; 
} 
Verwandte Themen