2010-12-13 6 views
0

Ich möchte Top Margin auf dem ersten Element in der ListView hinzufügen. Ist das möglich? Oder, wie kann ich das erste Listenelement in der Listenansicht referenzieren?Wie wird das erste Listenelement in ListView referenziert?

I

lv = (ListView)getListView(); 
View myRowItem = lv.getChildAt(0); 

Wahrscheinlich versucht, es nicht funktioniert, weil ich im Moment es ausgeführt, Listenelemente noch nicht existierte. Ich nehme an, ich sollte oben Code in etwas wie onPostRender-Ereignis versuchen. Gibt es so etwas in Java Android?

Antwort

0

Sie müssten Ihren eigenen Adapter erstellen und diese Bedingung in die getView Methode einfügen. Ich würde jedoch gerne wissen, warum Sie den oberen Rand nur zum ersten Element hinzufügen möchten ... würde es sich nicht genauso verhalten, wenn Sie den oberen Rand an die ListView selbst setzen?

+0

Es reines Design Problem. Ich möchte, dass die Liste den gesamten Bildschirm (oder Arbeitsbereich) einnimmt, aber wenn die Liste zum ersten Mal angezeigt wird, möchte ich einen Abstand zwischen der oberen Kante des Arbeitsbereichs und dem ersten Element in der Liste. Zuerst habe ich versucht, Kopfzeile hinzuzufügen, um etwas Abstand zu schaffen, der gut funktioniert, bis ich anfing, Adapter zu ändern und anruft ... (das schuf eine andere Reihe von Problemen, und ich folgerte, dass es nicht der Weg ist) – bobetko

+0

Es scheint die einzige Lösung ist GetWiew zu verwenden und Randwert auf ConvertView anzuwenden, wenn Position gleich 0 ist. Die Sache ist, ich muss auch Randwert für Positionen anders als 0 entfernen, weil diese ConvertView erneut wiederverwendet wird. Ich hatte auf eine effizientere Lösung gehofft. – bobetko

+0

Dann erkannte ich, dass ich nicht weiß, wie man den oberen Rand von convertView an Position 0 ändert. Ich habe versucht, all die Dinge, die für mich mit LayoutParams Sinn machten ... es stürzt jedes Mal ab. – bobetko

0

Um die Artikel zu erhalten, schreiben Sie Ihren Code, wo immer Sie die Liste Adapter setzen.

Übrigens, um den Rand zu setzen, setzen Sie einfach android:PaddingTop des ListView auf die Layout-Datei (XML-Datei).

0

Der beste Ort zum Anpassen von ListItems ist der Adapter. Erstellen Sie einen benutzerdefinierten Adapter für Ihre ListView und verwenden Sie die getView-Methode, um zu entscheiden, was mit jedem ListItem zu tun ist. Siehe ein Beispiel hier: How to repaint listview items when changing orientation

Verwandte Themen