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


Cómo puedo declarar un fragmento como oculto en un diseño XML

Mi actividad declara todos sus fragmentos de GUI en un solo diseño XML. Sólo necesita mostrar algunos de los fragmentos en el momento del lanzamiento; El resto se muestran cuando el usuario interactúa con la aplicación. Una parte del diseño es la siguiente:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/map_panel" android:name="com.example.MapPanel" android:layout_width="match_parent" android:layout_height="@dimen/map_panel_height" /> <fragment android:id="@+id/list_panel" android:name="com.example.ListPanel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/map_panel" /> <fragment android:id="@+id/detail_panel" android:name="com.example.DetailPanel" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/map_panel" android:visibility="gone" /> 

Mi intención es que el fragmento list_panel sea ​​visible en el arranque, y el fragmento detail_panel se oculte hasta que el usuario seleccione algo de la lista.

  • ¿Dónde se instala el paquete de aplicación de Android en el teléfono
  • Servicio no disponible al llamar a geoCoder.getFromLocation ()
  • ¿Cómo usar una clase de contrato en android?
  • Comprobando si el estado se ha guardado antes de comprometer un FragmentTransaction
  • Libgdx-android: Interceptar la tecla de retroceso y confirmar la salida
  • Nueva interfaz de la tarjeta Google Now y Google+
  • De forma predeterminada, un fragmento empieza con el atributo isHidden como false. Eso significa que mi actividad tiene que iterar a través de los fragmentos cargados y llamar manualmente isHidden(true) en fragmentos como detail_panel al inicio.

    Preferiría declarar el estado isHidden en el diseño XML. Sin embargo, la configuración de android:visibility="gone" en una declaración <fragment> no cambia el estado isHidden , y no puedo encontrar ninguna documentación sobre otro atributo que haría el truco.

    ¿Es posible establecer un atributo XML en un <fragment> para hacer que se oculte?

    Nota: No me preocupa la visibilidad de la vista, me preocupa el valor de fragment.isHidden() . Esto afecta a cómo FragmentManager manipula la pila trasera y realiza animaciones. Si llama a transaction.show(fragment) en un fragmento cuya vista es invisible o desaparecida, pero el valor de fragment.isHidden() es falso, entonces el FragmentManager no hará que la vista sea visible. Consulte http://developer.android.com/reference/android/app/Fragment.html#isHidden () como referencia.

  • ListView no se llena, getView () no se recibe
  • Detectar cuándo se han cargado los mapas de Android v2
  • Poner manualmente archivos en la tarjeta SD del emulador de Android
  • ¿Cómo mostrar el texto en un ImageButton?
  • Cómo guardar datos de aplicaciones de Android en Google Cloud
  • Error: El método no estático 'findViewById (int)' no se puede referenciar desde un contexto estático
  • 5 Solutions collect form web for “Cómo puedo declarar un fragmento como oculto en un diseño XML”

    Me enfrenté a una situación similar, donde tuve que esconder un fragmento.

    Simplemente incluí el fragmento dentro de un LinearLayout y marcó el diseño para ser visible / ido.

     <LinearLayout android:id="@+id/map_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="visible" > <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment" /> </LinearLayout> 

    Esta respuesta es un poco tarde pensó que puede ser útil para futuras referencias. La visibilidad es parte de la clase Ver – Fragmento extiende el objeto aunque no tiene acceso a los valores de visibilidad. Una posibilidad es hacer que el fragmento sea un niño de un FrameLayout y llamando invisible o desaparecido en el diseño. Esto hará que el fragmento parezca estar oculto.

    ¡Espero eso ayude!

    Basado en el post de Jyo, utilice esto:

     FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); fragmentTransaction.hide(mFragment); fragmentTransaction.commit(); 

    Esto ha funcionado para mí en el nivel 23 de la API. 'MFragment' es el fragmento que desea ocultar.

    Tenemos el método isVisible para el fragmento que seeting visibilty a Gone no toma ningún espacio Donde como Invisble toma el espacio real de la visión.

     public void showHideFrgament(final Fragment fragment){ FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); if (fragment.isHidden()) { ft.show(fragment); Log.d("hidden","Show"); } else { ft.hide(fragment); Log.d("Shown","Hide"); } ft.commit(); } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.