Ich habe eine bestimmte Liste erstellt, die aus den folgenden Elementen besteht, um eine scrollbare Liste mit jeder Zeile zu erstellen, die ein Bild auf der linken Seite und Text auf der rechten Seite enthält:
So beginnen Sie mit einem "Root" -Layout:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#C8C8C8"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:divider="#C8C8C8"
android:background="#C8C8C8"/>
</LinearLayout>
und dann platziere ich in der ListView das folgende "Zeilen" -Element:
<?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="wrap_content"
android:orientation="horizontal"
android:background="@drawable/bg_row"
>
<ImageView
android:layout_width="wrap_content"
android:paddingLeft="10px"
android:paddingRight="15px"
android:paddingTop="5px"
android:paddingBottom="5px"
android:layout_height="wrap_content"
android:src="@drawable/bg_image"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5px"
android:paddingBottom="5px"
android:textSize="16sp"
android:textColor="#000000"
android:layout_gravity="center"
android:maxHeight="50px"/>
</LinearLayout>
Solange der Bildschirm statisch angezeigt wird (wie in keiner Bewegung), wird er korrekt angezeigt, aber wenn ich anfange, durch die Liste zu scrollen, wird der Hintergrund des Zeilenelements (ein "Symbol", wie es im Code angezeigt werden kann) angezeigt Wird korrekt angezeigt, aber der Hintergrund des "Root" -Layouts wird vollständig schwarz. Wenn das Scrollen stoppt, erhält der Hintergrund meistens wieder seine Farbe. Beim Testen habe ich auch ein TextView
in diesem Root-Element hinzugefügt Mit dem gleichen Hintergrund behält dieser seine Farbe, wenn die Liste gescrollt wird ... Irgendeine Idee, warum dies geschieht und wie dies gelöst werden kann?
android:cacheColorHint="#0000"
funktioniert auch, wenn Sie Angst vor Nullen haben.android:cacheColorHint="@android:color/transparent"
wenn Sie Angst vor Zahlen haben :)Es ist sehr einfach, verwenden Sie einfach diese Zeile in Ihrer Layoutdatei:
so was:
quelle
Sie können wie folgt verwenden:
quelle
quelle
Wir haben viele Möglichkeiten für dieses Problem, Sie können den Hintergrund durch Programmieren wie transparent einstellen
oder durch xml
quelle
In Ihrer XML, wo
Listview
Set verwendet werden sollquelle
Ich verwende Bilder in
listView
und es wird manchmal schwarz in Samsung S4 nicht einmal scrollen. Es war ein dummer Fehler, den ich im Adapter gemacht habe. Ich habe meine Ansicht einfach auf null gesetzt , um dieses Problem zu behebenquelle
Es gibt viele Antworten auf diese Frage, aber heute habe ich festgestellt, dass dieser Frage immer noch eine wichtige Information fehlt.
Es gibt zwei mögliche Lösungen für das Problem, beide funktionieren, aber jede sollte in unterschiedlichen Situationen verwendet werden.
Methoden
Verwenden Sie,
android:cacheColorHint
wenn SieListView
einen hat feste Farbe Hintergrund.Verwenden
android:scrollingCache
SieListView
diese Option, wenn Sie ein (komplexes) Bild als Hintergrund haben.Hinweis
Wenn Sie
ListView
einen einfarbigen Hintergrund haben, funktionieren beide Methoden, also nicht nur diecacheColorHint
. Es wird jedoch nicht empfohlen, diescrolingCache
Methode für einfarbige Hintergründe zu verwenden, da sie eine Optimierungsmethode deaktiviert, die zum reibungslosen Animieren und Scrollen der ListView verwendet wird.Hinweis für den Hinweis:
scrolingCache
Wenn Sie auf "false" setzen, bedeutet dies nicht unbedingt, dass dieListView
Animationen und das Scrollen langsam werden.quelle
quelle
Folgendes hat bei mir funktioniert:
quelle
android:cacheColorHint="#00000000"// setting transparent color
oder
Hintergrund nicht setzen von
listview
.quelle