7

In meiner App verwende ich Navigation Drawer und es funktioniert sehr gut. Aber wenn das zu zeigende Fragment viel TextView, ImageView und Layout enthält, wenn ich auf das Element klicke, stört die Ansicht. Ich würde diese Verzögerung verbessern. Der Effekt ist der gleiche wie bei meinem Galaxy Nexus und Nexus 4 und ich denke, das Problem ist, dass ich 2 Befehle in der gleichen Zeit habe.Navigationsschublade ist langsam mit komplexer Ansicht

//On item click - First comand (Close Drawer) 
    mDrawerList.setItemChecked(position, true); 
    setTitle(mStringTitles[position]); 
    mDrawerLayout.closeDrawer(mDrawerView); 

    // Second comand (Replace Fragment)   
    getFragmentManager() 
    .beginTransaction() 
    .replace(R.id.firts_view, new FragmentNew()) 
    .commit(); 

Also dachte ich, ich würde das Fragment ersetzen, kurz nachdem das Menü geschlossen ist .. irgendwelche Ideen?

Antwort

7

Als documentation says:

Avoid performing expensive operations such as layout during animation as it can cause stuttering; 
try to perform expensive operations during the STATE_IDLE state. 

Was Sie tun können, ist ein Ereignis-Listener für die Schublade haben, und tun das Fragment Operation in der onDrawerClosed Rückruf (example here).

+0

Vielen Dank, eine nette Lösung. – mdikici

0

Ich habe festgestellt, dass wenn Sie die Ansichten in das Fragment in der onCreateView() Methode laden wird es das Laden von Fragmenten verlangsamen. Versuchen Sie, die fragmentbezogenen Sichten in der onStart() Methode zu laden.