Android: Eine ungewollte GridView Kombo – Layout per XML und Quellcode

2 Feb

Um das User Interface (UI) einer Activity oder eines Fragments zu erstellen, kann der Entwickler das Layout der einzelnen ViewGroups und deren Komponenten (Views) in XML Dateien definieren, die der jeweiligen Activity zugeordnet werden. Dieses Verfahren hat mehrere Vorteile:

  • Trennung der Darstellung von Programmabläufen
  • Übersicht sowohl im Code als auch zentrale Stelle zum modifizieren des Layouts
  • UI Editor für XML Dateien – Das Layout lässt sich zusammenklicken

Demnach sollten statische Elemente per XML eingebunden werden, wohingegen dynamische Elemente, die je nach Kontext zur Laufzeit verändert werden sollen, als Java Quellcode ihren Nutzen finden.

Die Anzeige von mehreren Profilen in einer ViewEine Funktion von ginkgo ist die Anzeige der Freunde. Diese sollen in einer GridView zusammen mit dem jeweiligen Avatar und Namen dargestellt werden. Dabei habe ich nach einer Darstellung gesucht, die einen möglichst optimalen Kompromis zwischen Größe und Anzahl an Elementen pro Zeile bietet finden. Dies lies sich seltsamerweise aber nicht allein durch XML lösen, da die Avatare so nicht mitskalieren.

Das Layout ist dabei in einer Hierarchy aufgeteilt. Die DashActivity ist demnach ein LinearLayout, das aus dem Dashboard und einem Container besteht. Die Activity wechselt durch die Interaktion mit dem Benutzer das Fragment, das im Container angezeigt wird dynamisch. In diesem Fall soll eine GridView angezeigt werden, die mehrere RelativeLayouts beinhaltet. Nämlich die einzelnen Avatare samt Benutzernamen.

Durch die Angabe von

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android&#8220;
android:layout_width=“150dp“
android:layout_height=“150dp“>

</RelativeLayout>

Sollte ein einzelnes Element 150 dp x 150 dp groß sein. Zur Laufzeit stimmt diese Größenangabe aber nicht mit diesem überein. Das Hinzufügen von

convertView.setLayoutParams(new GridView.LayoutParams(150, 150));

in der jeweiligen Java Datei hat mir jedoch geholfen:

Eine Antwort to “Android: Eine ungewollte GridView Kombo – Layout per XML und Quellcode”

  1. unruhe 18. April 2012 um 16:46 #

    Hi,

    ich hatte auch ein paar Problem mit der GridView und kam letztendlich mit folgender Lösung gut aus:

    In dem row-/element-template ist dann ein LinearLayout mit den jeweiligen Views.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: