tratar de hacer una lista de puntuación más alta, que es desplazable, y se ve así:GridView con diferentes tamaños de la columna
foo 1000
bar 876
foobar 500
foobarfoo 1
Actualmente estoy haciendo con un GridView. Me gustaría establecer el ancho de la columna del nombre al 60% de la pantalla y el ancho de la columna de puntuación al 40%. ¿Es posible?
Actualmente estoy intentando a través de un adaptador Costum. Esta es la funcion getView para ello:
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv;
if (convertView == null) {
tv = new TextView(context);
tv.setTextSize(25);
tv.setTextColor(Color.WHITE);
if (position % 2 == 0)
{
tv.setLayoutParams(new GridView.LayoutParams((width/10)*6, 50));
}
else
{
tv.setLayoutParams(new GridView.LayoutParams((width/10)*4, 50));
}
}
else {
tv = (TextView) convertView;
}
tv.setText(texts[position]);
return tv;
}
La disposición es construido por el gridview y un botón en la parte inferior. El archivo XML es:
<?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" android:orientation="vertical" android:id="@+id/top">
<GridView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:id="@+id/grid"
android:numColumns="2"
android:columnWidth="0dp"
>
</GridView>
<Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/backbutton" android:text="@string/backstr"></Button>
</LinearLayout>
Así que la pregunta de nuevo: ¿Es posible establecer el GridView para permitir la adición de diferentes columnas de tamaño? Si es así, ¿entonces mi enfoque es bueno? (Probablemente no, ya que no funciona :)) ¿Me perdí algo?
¡Gracias de antemano!
puede que intente configurar el ancho de columna a wrap_content en lugar de 0DP y luego ver si funciona? –
Eso lamentablemente no es un valor válido para el ancho de columna. ¡Pero, gracias por el comentario! – Szellszi
En ese caso, podría usar un ListView en lugar de GridView, y para cada fila, use un diseño con dos vistas de texto (LinearLayout preferiblemente) que complete en el método getView de su adaptador. –