Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Fragmento de carga antes de la navegación Cierre del cajón

He implementado un cajón de navegación y quiero cargar mi fragmento antes de que cierre el cajón de navegación. Actualmente, el fragmento se carga en paralelo con el cierre del cajón, por lo que si el fragmento es pesado, la interfaz de usuario cuelga un poco.

El código que tengo es:

private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.content_frame, fragmentProfile); ft.commit(); drawerLayout.closeDrawer(drawerNaviListView); } } 

¿Cómo puedo cambiar esto para que vea mi fragmento de carga (en segundo plano) en primer lugar y cuando se ha terminado la carga, el cajón de navegación se cierra?

  • ¿Hay alguna manera de invocar la navegación desde un navegador móvil?
  • NavigationView OnNavigationItemSelectedListener no se llama
  • Cómo agregar funcionalidad de flecha de botón Volver en barra de navegación
  • Ocultar el cajón de navegación cuando el usuario presiona el botón de retroceso
  • Actualizar el menú NavigationView después de cambiar la configuración regional
  • La navegación Android Up no funciona
  • Cómo cambiar el tamaño de la navegación ver los elementos del menú y el texto ?? ¿Cómo cambiar el espacio entre el menú?
  • Cajón de navegación de Android sobre las pestañas
  • 3 Solutions collect form web for “Fragmento de carga antes de la navegación Cierre del cajón”

    Mi solución fue cargar el fragmento AFTER cajón está cerrado: en realidad llamada loadFragment método dentro onDrawerClosed

      public void onDrawerClosed() { // assure the request comes from selecting a menu item, not just closing tab if (selectedTab ) selectItem(mSelectedFragment); selectedTab = false; } 

    DrawerLayout.DrawerListener se puede utilizar para supervisar el estado y el movimiento de las vistas del cajón. Evite realizar operaciones costosas como el diseño durante la animación ya que puede causar tartamudeo; Intente realizar operaciones caras durante el estado STATE_IDLE. Fuente .

    En otras palabras, Android recomienda que espere a que su cajón se cierre antes de intercambiar fragmentos.

    Intente cargar después de que el cajón esté cerrado Utilice el controlador para crear una ejecución retardada. Para que no haya ninguna caída cuando cierra el cajón

    Dentro del método onItemClick() , utilice el siguiente código:

     Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.content_frame, fragmentProfile); ft.commit(); } }; handler.postDelayed(runnable, 500); // here 500 is the delay 

    // otra forma de hacerlo es

    Crear un AsyncTask y en el método doInBackground () iniciar la transacción de fragmentos y cerrar el cajón en onPostExecute ()

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.