2015-10-07 10 views
13

ich eine Basis-Stil für meine Anwendung mit folgendem Element definiert haben:windowBackground in Android 6 (Eibisch)

<item name="android:windowBackground">@color/window_background</item> 

Welche gesetzt hat, die Hintergrundfarbe für alle meine Aktivitäten gut, bis ich auf Android meine App getestet 6 wo alle Hintergründe weiß sind. Die Hintergründe sind weiterhin color/window_background auf Geräten, auf denen Pre-Marshmallow läuft.

Wer weiß, wie das funktioniert (oder warum es nicht funktioniert) auf Android 6?

Edit mit einigen weiteren Informationen: Ich bin auf API 22, habe ich nichts geändert von der vorherigen Version oder aktualisiert die API, nur unter Android 6 ändert den Hintergrund.

+0

Sie zielen sowohl windowBackground: "colorbackground android" API 22 oder API 23 Es sollte unter sein? –

+0

Ich habe ein ähnliches Problem, einige der Hintergründe für mich wurden mit Primärfarbe gefüllt, ich habe "actionBarTheme" von meinen Stilen entfernt und es scheint, die Hintergrundprobleme zu beheben. Wie auch immer (unerwartet) sind meine Aktionsleisten nicht korrekt formatiert. –

+0

Geben Sie in Ihrer Frage mehr Details an, z. B. welches Thema Sie verwenden, target API –

Antwort

2

Ich habe nichts speziell für Marshmallow gefunden, das dies verursachen würde. Also die Vorschläge, die ich habe, sind:

Ändern der Hintergrundfarbe Ressource zu einem Zeichenform Ressource.

Von:

<item name="android:windowBackground">@color/window_background</item> 

An:

<item name="android:windowBackground">@drawable/window_background</item> 

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <solid android:color="@color/window_background"/> 
</shape> 

Falls Sie haben nicht die Opazität aller Ihrer Ansichten geprüft:

Stellen Sie sicher, Ihre windowBackground eigentlich der Hintergrund der meisten von Ihre Aktivität (vor allem über scrollbare Abschnitte, wo Überziehung ist die wichtigsten zu vermeiden), opaque view Hintergründe wo möglich zu entfernen.

Make your windowBackground work for you instead of using null

Ich dachte, das war interessant, den Vorrang, wie Hintergrundebene festgelegt werden, um zu sehen. Ich bin mir nicht sicher, ob Sie Hintergrundbilder festlegen oder wie Sie Ihre App eingerichtet haben, aber das ist eine Lektüre wert.

Hintergründe bestehen aus mehreren Schichten, von hinten nach vorne:

  • der Hintergrund Drawable des Themas
  • eine Farbe (eingestellt über setColor (int))
  • zwei Drawables, vorherigen und Strom (eingestellt über SetBitmap (Bitmap) oder setDrawable (Drawable)), die sich im Übergang sein kann

Ich kann nicht finden, ob es einen Unterschied zu den Themen in Marshmallow oder der Reihenfolge der Elemente gibt, es scheint, dass es keine grundlegenden Änderungen gab und ich keinen Fehler dafür finden kann.

Ich hoffe, dass dies hilft, lassen Sie mich wissen, und ich kann ein anderes Aussehen haben.

Wenn dies nicht hilft, kann es sich lohnen, mehr Code zu schreiben, der für das Problem relevant ist. Prost.

+0

Ich denke, ich sage, es sollte funktionieren und von dem Code, den ich sehen kann, kann ich nur raten, warum es nicht funktioniert. –

+0

Ich habe das gleiche Problem, aber die Lösung mit Shape-Ressource funktioniert nicht für mich. Das größte Problem mit diesem Bug (oder was auch immer es ist) ist, dass es zum Beispiel in PreferenceFragment passiert, das nicht so einfach zu überschreiben ist wie das normale Layout. –

+0

@MatousHybl Ich habe deine Antwort gesehen, es sieht gut aus und stimmt mit dem überein, was ich gesagt habe, dass irgendwo der Hintergrund auf eine Ansicht gesetzt wurde und das den benutzerdefinierten Stil überlagert hat. Außerdem ist es sehr schwierig, den Code von jemandem zu debuggen, wenn man den größten Teil davon nicht sehen kann. –

1

Früher hatte ich ein ähnliches Problem, aber ich habe herausgefunden, dass wenn ich in meinen Stilen actionBarTheme kommentierte, es plötzlich zu arbeiten begann. Ich grub tiefer in meine Stile ein und fand heraus, dass der Stil der Aktionsleiste ein android:background Attribut festgelegt hat, nachdem es kommentiert wurde, alles funktioniert jetzt wie erwartet.

+0

alle Instanz von Android auskommentiert: Hintergrund, keine Änderung. – Heinrisch

0

Wenn Sie Android Studio 1.4 oder höher verwenden, wechseln Sie zu den Stilen, in denen sich Ihr Design befindet, und klicken Sie auf "Editor öffnen" in der oberen rechten Ecke. Dann ändere dort deinen Fensterhintergrund.

+0

Haben Sie das versucht, es hat windowBackground in ein paar Orten hinzugefügt, aber es hat den Hintergrund nicht geändert. – Heinrisch

0

Wie über die Einstellung und colorBackground

<item name="android:windowBackground">@color/window_background</item> 
<item name="android:colorBackground">@color/window_background</item> 
Verwandte Themen