Ist es möglich, dass Elemente in einem ListView eine andere z-Position / einen anderen Index haben?
Ich möchte, dass ein Element in meiner ListView immer über anderen Ansichten in meinem Layout steht.
Siehe meine Illustration hier:
Die rote Leiste ist eine andere Ansicht außerhalb der ListView (in meinem Fall eine vertikale Suchleiste).
Ich habe versucht, View.bringToFront()
für ein bestimmtes Element aufzurufen, aber das hat überhaupt nicht funktioniert.
Irgendwelche Ideen?
So würde ich den gewünschten Effekt erzielen:
Jedes Element in der Liste sollte einen roten Balken enthalten, der die Höhe des Elements darstellt. Auf diese Weise sehen alle roten Balken so aus, dass es aussieht, als gäbe es nur einen roten Balken, obwohl es tatsächlich einen pro Punkt gibt.
Wenn Sie FrameLayout
verwenden, bestimmt die Reihenfolge der untergeordneten Elemente die Zeichenreihenfolge. Beispielsweise wird das dritte untergeordnete Element eines FrameLayout
über dem ersten und zweiten untergeordneten Element angezeigt.
Dann können Sie zur Laufzeit den roten Balken über oder unter dem Inhalt eines jeden Elements anordnen. In der Methode bindView
Ihres Adapters können Sie die Methode bringToFront
verwenden, um den roten Balken für diese Ansicht nach vorne zu bringen. Vergessen Sie nicht, dass Ansichten in ListView
wiederverwendet werden. Daher müssen Sie den roten Balken jedes Mal verschieben, um die z-Position zu korrigieren.
Hier ist eine sehr abgespeckte XML-Beispieldatei für ein Element in der Ansicht, lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
item_red_bar_bottom.xml:
%Vor%Tags und Links android listview z-index always-on-top