LayoutInFlater bläht sich manchmal (zufällig) mit der falschen Hintergrundfarbe auf

8

Ich blende eine Ansicht mit LayoutInflater auf. Die Hintergrundfarbe meines aufgeblähten RelativeLayout wird in meiner XML-Datei festgelegt. Ich habe ein seltsames Problem auf einem meiner Geräte erlebt: manchmal (zufällig) war die Hintergrundfarbe eine andere (falsche) Farbe von meiner colors.xml. Hat jemand dieses Problem schon einmal getroffen?

Details:

Ich habe ein ListView mit einem CursorAdapter . Ich blase die Listenelemente mit nur einem statischen Element auf (ich denke, das ist kein Recycling-Problem), benutze diesen Code:

%Vor%

Mein layout/bookmark_item.xml :

%Vor%

Die Hintergrundfarbe des inneren RelativeLayout ist auf @color/app_menu_item_background eingestellt. Diese Farbe ist in meinem R.java :

%Vor%

Ich habe auch eine Farbe namens @color/app_menu_item_colored_background , was ich an anderer Stelle in meinem Code verwende, es hat nichts mit meiner Lesezeichenliste und dem Adapter gemeinsam. Es hat auch eine andere Ressourcen-ID in R.java :

%Vor%

Und beide haben unterschiedliche Farben:

%Vor%

Wenn meine App dann manchmal (nicht immer) ausgeführt wird, verwendet meine Ansicht die falsche app_menu_item_colored_background Hintergrundfarbe. Ich habe die aufgeblähten Ansichtsfarben protokolliert (siehe Code oben) und es unterscheidet sich manchmal sogar:

%Vor%

Beachten Sie, dass die erste Farbe #517409 und die zweite #f6efde ist.

Seltsamerweise konnte ich den Fehler nur auf einem Gerät, einem Samsung Galaxy S3 mini, etwa 2-3 Mal pro 10 Versuche reproduzieren.

    
hunyadym 08.08.2013, 12:45
quelle

3 Antworten

1
___ qstntxt ___

Ich blende eine Ansicht mit LayoutInflater auf. Die Hintergrundfarbe meines aufgeblähten RelativeLayout wird in meiner XML-Datei festgelegt. Ich habe ein seltsames Problem auf einem meiner Geräte erlebt: manchmal (zufällig) war die Hintergrundfarbe eine andere (falsche) Farbe von meiner colors.xml. Hat jemand dieses Problem schon einmal getroffen?

Details:

Ich habe ein %code% mit einem %code% . Ich blase die Listenelemente mit nur einem statischen Element auf (ich denke, das ist kein Recycling-Problem), benutze diesen Code:

%Vor%

Mein %code% :

%Vor%

Die Hintergrundfarbe des inneren RelativeLayout ist auf %code% eingestellt. Diese Farbe ist in meinem %code% :

%Vor%

Ich habe auch eine Farbe namens %code% , was ich an anderer Stelle in meinem Code verwende, es hat nichts mit meiner Lesezeichenliste und dem Adapter gemeinsam. Es hat auch eine andere Ressourcen-ID in %code% :

%Vor%

Und beide haben unterschiedliche Farben:

%Vor%

Wenn meine App dann manchmal (nicht immer) ausgeführt wird, verwendet meine Ansicht die falsche %code% Hintergrundfarbe. Ich habe die aufgeblähten Ansichtsfarben protokolliert (siehe Code oben) und es unterscheidet sich manchmal sogar:

%Vor%

Beachten Sie, dass die erste Farbe %code% und die zweite %code% ist.

Seltsamerweise konnte ich den Fehler nur auf einem Gerät, einem Samsung Galaxy S3 mini, etwa 2-3 Mal pro 10 Versuche reproduzieren.

    
___ qstnhdr ___ LayoutInFlater bläht sich manchmal (zufällig) mit der falschen Hintergrundfarbe auf ___ answer37823444 ___

Ich hatte dies für das windowBackground meines Themas für eine S2, die 4.1 läuft. Wie in dieser Antwort beschrieben, habe ich anstelle einer Farbe einen Solid State als Workaround verwendet. Ich habe eine Ahnung, dass dies auch für den Hintergrund der Ansicht funktionieren würde.

Ich kenne den Grund für dieses Verhalten jedoch nicht.

    
___ tag123colors ___ Verwenden Sie dieses Tag für Fragen zum Darstellen oder Bearbeiten von Farben in einer Programmiersprache. ___ answer3367880 ___

versuche es manuell

%Vor%     
___ tag123androidlistview ___ Ein ListView ist ein grafisches Bildschirmsteuerelement oder Widget, das von UI-Bibliotheken in den meisten modernen Betriebssystemen bereitgestellt wird, um Elemente in Listenform anzuzeigen. ___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ tag123layoutinflater ___ Das Layout-Inflator-Tag bezieht sich auf die Android LayoutInflater-Klasse, die zum Erstellen einer Ansichtshierarchie aus einer XML-Layoutdatei verwendet wird. ___ answer37823500 ___

Ich habe es schon einmal gehört. In Ihrem Adapter, wo Sie Ihren Hintergrund einstellen, tritt dies auf, wenn Sie keinen Hintergrund einstellen. Sie sollten also in jedem aufgerufenen getView Ihren Hintergrund setzen. Wenn Sie diesen Hintergrund nicht festlegen und den Status speichern möchten, wird er auf null gesetzt.

    
___
JITHIN GOPAL 12.11.2015 09:14
quelle
0

Ich hatte dies für das windowBackground meines Themas für eine S2, die 4.1 läuft. Wie in dieser Antwort beschrieben, habe ich anstelle einer Farbe einen Solid State als Workaround verwendet. Ich habe eine Ahnung, dass dies auch für den Hintergrund der Ansicht funktionieren würde.

Ich kenne den Grund für dieses Verhalten jedoch nicht.

    
Tom 14.06.2016 22:57
quelle
0

Ich habe es schon einmal gehört. In Ihrem Adapter, wo Sie Ihren Hintergrund einstellen, tritt dies auf, wenn Sie keinen Hintergrund einstellen. Sie sollten also in jedem aufgerufenen getView Ihren Hintergrund setzen. Wenn Sie diesen Hintergrund nicht festlegen und den Status speichern möchten, wird er auf null gesetzt.

    
Eren Utku 14.06.2016 23:03
quelle