studio llenar example desplegable custom como arrayadapter agregar android listview row android-arrayadapter simplecursoradapter

llenar - listview desplegable android studio



android listview altura del artículo (7)

¿Por qué cuando uso SimpleCursorAdapter para ListView tengo altura de elementos en ListView como este?

(Mi código está basado en this )

Pero al usar matrices, los elementos de ListView tienen una gran altura

(Aprendo listview basado en this )

El diseño de filas para la lista de elementos es

<?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"/>

Entonces, mi pregunta es ¿por qué hay una diferencia en las alturas de fila cuando se usan ArrayAdapter y SimpleCursorAdapter?


Aquí están mis soluciones; Es mi getView () en la subclase BaseAdapter:

public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null) { convertView=inflater.inflate(R.layout.list_view, parent,false); System.out.println("In"); } convertView.setMinimumHeight(100); return convertView; }

Aquí he establecido la altura mínima de ListItem en 100;


El truco para mí no era establecer la altura, sino configurar el minHeight. Esto se debe aplicar a la vista raíz de cualquier diseño que use su adaptador personalizado para representar cada fila.


Esta es mi solución (Hay un LinearLayout anidado):

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/item" android:layout_width="match_parent" android:layout_height="47dp" android:background="@drawable/box_arrow_top_bg" android:gravity="center" android:text="全部收支" android:textColor="#666" android:textSize="16sp" /> </LinearLayout> </LinearLayout>


Hice algo así:

@Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); TextView textView = (TextView) view.findViewById(android.R.id.text1); textView.setHeight(30); textView.setMinimumHeight(30); /*YOUR CHOICE OF COLOR*/ textView.setTextColor(Color.BLACK); return view; }

Debe poner los dos campos textView.setHeight (30); textView.setMinimumHeight (30); o no cambiará nada. Para mí funcionó y tuve el mismo problema.


La altura de los elementos de la vista de lista se ajusta en función de su contenido. En la primera imagen, sin contenido. así que la altura es muy mínima. En la segunda imagen, la altura aumenta según el tamaño del texto. Porque, especificaste android: layout_height = "wrap_content".


Necesita usar relleno en el diseño del elemento de la lista para que se agregue espacio en los bordes del elemento (simplemente aumentar el tamaño de la fuente no hará eso).

<?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" />


android:textAppearance="?android:attr/textAppearanceLarge"

parecía no tener efecto.

android:minHeight="?android:attr/listPreferredItemHeight"

cambió la altura para mí