studio recyclerview recycler divideritemdecoration android listview divider

android - divideritemdecoration - recyclerview space between items



Divider desaparece del último elemento en la vista de lista si se agregó una vista de pie de página (5)

Si se agrega una vista de pie de página en ListView, el divisor desaparece del último elemento de ListView.

Incluso he configurado android:footerDividersEnabled="true" con ListView y mi vista de pie de página es solo TextTiew.


La implementación de ListView en Android nunca dibuja divisores entre los elementos que están deshabilitados, que si solo está llamando al addFooterView(View v) , entonces su pie de página estará predeterminado.

En su lugar, debe llamar al addFooterView(View v, Object data, boolean isSelectable) con isSelectable establecido en true . Puede pasar null para el objeto de data si no lo necesita.


Esto casi funcionó para mí. Estaba buscando un divisor después del último elemento de la lista, pero no después del pie de página, ya que mi pie de página era un espacio vacío. Terminé agregando dos pies de página, uno seleccionable de altura cero y uno no seleccionable que contiene el relleno.

TextView view = new TextView(this); view.setLines(0); TextView view1 = new TextView(this); view1.setLines(4); mListView.addFooterView(view, null, true); mListView.addFooterView(view1, null, false); mListView.setFooterDividersEnabled(true);


Intente configurar el layout_height de ListView para match_parent :

android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#333333" android:dividerHeight="1px"

Cuando layout_height se establece en wrap_content , puede omitir el divisor inferior:

android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="#333333" android:dividerHeight="1px"


Diríjase a través del enfoque de la pared, pero confiable, es agregar manualmente el divisor como una vista de pie de página.

ListView myListView = (ListView) view.findViewById(R.id.my_list_view); myListView.addFooterView(getInflater().inflate(R.layout.horizontal_divider, myListView, false), null, false); myListView.addFooterView(getInflater().inflate(R.layout.the_original_footer_view, myListView, false), null, false);

Donde el archivo de diseño se vería así:

<View xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="1px" android:background="?android:attr/dividerVertical" />

Este enfoque se puede usar para agregar el divisor fácilmente incluso después del último pie de página, independientemente de que sea seleccionable, habilitado o cualquier cosa, simplemente permanece allí.

Tenga en cuenta que la altura es 1px lugar de 1dp . Aunque en contra de todas las recomendaciones, al menos en el dispositivo que probé esto da la misma altura de divisor que ListView, mientras que 1dp no lo hace.


La configuración es isSelectable como true no funcionó para mí, tal vez porque también estaba llamando a removeFooterView cuando mi lista removeFooterView carga.

Lo que finalmente lo solucionó fue configurar android:layout_height para " fill_parent " en lugar de " wrap_content " en el ListView.