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.

  • Modo de enfoque de la cámara Android
  • Clics no funciona en WebView
  • Crear mapa de bits desde el área de pantalla especificada
  • BetterPickers sin una biblioteca de soporte
  • ¿Cómo puedo obtener una ventana de actividad de estilo de diálogo para llenar la pantalla?
  • Cómo actualizar la Galería después de eliminar la imagen de SDCard
  • 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.

  • Android Gradle ejecuta pruebas en compilaciones no-depuración
  • Notificación Heads-up - Android Lollipop
  • ¿Cuál es la contraparte de iOS 'QLPreviewController o UIDocumentInteractionController en Android?
  • Barra de Acción de Android Sherlock con Tabs
  • La mejor manera de actualizar TextView, cada minuto, en el minuto
  • Sugerencias de búsqueda de recursos de red en el cuadro Búsqueda rápida
  • 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.