ListFragment Layout desde xml

Cómo crear una distribución ListFragment (de la biblioteca de soporte v4) de xml? ListFragment configura su diseño de forma programática, por lo que si desea modificarlo, debe ensuciar con agregar o quitar vista.

He convertido el diseño creado en xml, puede agregar / quitar sus widgets o, por ejemplo, agregar soluciones pulltorefresh . No debes cambiar los ids necesarios. Debido a los ids internos necesarios para algunos de los widgets, una función auxiliar debe ser llamada y debe estar en el espacio de nombres de soporte v4 ya que las constantes son internas con visibilidad predeterminada.

list_loader.xml

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:id="@+id/progress_container_id" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:visibility="gone" > <ProgressBar style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <FrameLayout android:id="@+id/list_container_id" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/empty_id" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" /> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:drawSelectorOnTop="false" > </ListView> </FrameLayout> </FrameLayout> 

Y la clase ListFragmentLayout en android.support.v4.app (en tu proyecto, no necesitas modificar el soporte v4 jar)

 package android.support.v4.app; import your.package.R; import android.view.View; public class ListFragmentLayout { public static void setupIds(View view) { view.findViewById(R.id.empty_id).setId(ListFragment.INTERNAL_EMPTY_ID); view.findViewById(R.id.progress_container_id).setId(ListFragment.INTERNAL_PROGRESS_CONTAINER_ID); view.findViewById(R.id.list_container_id).setId(ListFragment.INTERNAL_LIST_CONTAINER_ID); } } 

En el fragmento que extiende ListFragment

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.list_loader, container, false); ListFragmentLayout.setupIds(view); return view; } 

Desde el android sdk (ListFragment) ( http://developer.android.com/reference/android/app/ListFragment.html ):

Public View onCreateView (Inflador LayoutInflater, contenedor ViewGroup, Bundle savedInstanceState)

Proporcione la implementación predeterminada para devolver una vista de lista simple. Las subclases pueden reemplazarlas con su propio diseño. Si lo hace, la jerarquía de vista devuelta debe tener un ListView cuyo id es android.R.id.list y opcionalmente puede tener una identificación de la vista hermana android.R.id.empty que se mostrará cuando la lista esté vacía.

Si está sobreescribiendo este método con su propio contenido personalizado, considere la inclusión de la lista estándar layout_content en su archivo de diseño, para que siga reteniendo todo el comportamiento estándar de ListFragment. En particular, esta es actualmente la única manera de mostrar el estado de progreso indeterminado incorporado.

Así que cuando usted quiere que su propio layout.xml para un FragmentList overide onCreateView e inflar su propio diseño.

Por ejemplo:

Cree un diseño de Android ( yourlistlayout.xml ) y coloque el siguiente xml en la posición donde desea mostrar su ListFragment.

  <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ListView> 

En su clase ListFragment , coloque el código siguiente:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.yourlistlayout, null); return v; } 
  • Tutorial en el analizador DOM
  • Cómo configurar el fondo del botón seleccionado / no seleccionado en el archivo XML
  • No se encontró ningún recurso en el archivo XML de diseño android
  • Android analiza un xml con saxparser
  • Simple XML Serializer no puede satisfacer el elemento
  • Error al analizar etiquetas XML no coincidentes
  • Android: state_enabled falta / no funciona?
  • ¿Es posible acceder a un elemento de string-array en Android?
  • Obligar a un botón a permanecer en la parte inferior de la pantalla del teléfono
  • Listview cambia la posición de otras vistas en el teclado abierto
  • Color de sombra en los botones dependiendo del estado en XML - Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.