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


Android listviews: vistas de encabezado y pie de página

En ListActivity, necesito vistas de encabezado y pie de página (en la parte superior e inferior de la lista) que se utilizarán como página anterior y botones de la siguiente página en mi lista, respectivamente, porque sólo quiero mostrar 20 elementos a la vez.

Puse mis vistas de cabecera y pie haciendo:

getListView().addHeaderView(myHeaderView); getListView().addFooterView(myFooterView); setListAdapter(adapter); 

Esto funciona bien, pero necesito quitar dinámicamente y añadir estas vistas de encabezado y pie de página, ya que algunas páginas de mi lista pueden no tener un botón de página siguiente o un botón de página anterior.

El problema es, no puedo llamar addHeaderView o addFooterView después de que he llamado setListAdapter.

¿Hay alguna forma de evitar esto?

  • Cómo obtener todos los elementos seleccionados de un ListView?
  • Listview setItemChecked no funciona
  • Cómo obtener una posición de elemento de lista haciendo clic en el botón dentro de él?
  • Sugerencias para crear un control de árbol en Android
  • Android: Cómo ocultar un elemento ListView
  • ¿Por qué el listview.setAdapter (_adapter) bloquea dos veces la aplicación?
  • Eliminar el encabezado de listView
  • Cómo mantener la posición de desplazamiento de listview cuando se actualiza
  • 3 Solutions collect form web for “Android listviews: vistas de encabezado y pie de página”

    ¿Por qué no colapsar el encabezado y pie de página a cero altura, o gris los botones (incluso mejor).

    Y la mejor experiencia de usuario, en mi opinión, sería cargar dinámicamente más elementos cuando sea necesario (es decir, al desplazarse), como la aplicación incorporada de Gmail.

    Sí, se trata de un error o descuido en el componente ListView . Usted puede trabajar alrededor de esto escribiendo su propio WrapperListAdapter que maneja la adición y la eliminación de artículos fijos de la lista, pero puedo decirle que no es completamente directo hacer.

    Alternativamente – y mucho más fácil – podría agregar un componente fijo por encima o por debajo del ListView donde se colocan los botones siguiente y anterior.

    ¿Qué hay acerca de restablecer el adaptador en cada momento que necesita para agregar la vista de cabecera, de esta manera:

     ListView.FixedViewInfo headerInfo = getListView().new FixedViewInfo(); headerInfo.isSelectable=false ; headerInfo.view = feedInfoView; headerInfos.add(headerInfo); headerViewListAdapter = new HeaderViewListAdapter(headerInfos,null,adapter); getListView().setAdapter(headerViewListAdapter); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.