2016-09-28 2 views
2

Ich habe eine ScrollView mit einigen Kindern drinnen.android: Hat ScrollView unterschiedliche Standardhintergründe für verschiedene API-Level?

Für API 23 hat die ScrollView einen weißen Hintergrund. Aber für API 22 und darunter ist der Hintergrund grau. Ich habe keinen Hintergrund in XML oder Code gesetzt. Alle übrigen Standardeinstellungen Aktivität und Fragment haben auch Standardhintergrund in Layout-XML. Das Aktivitätsthema ist standardmäßig Theme.Holo.Light.NoActionBar und Theme.Material.Light.NoActionBar für v21.

sah ich diese auf:

Samsung Note 5 mit 6.0.0: white

android Emulator Nexus 6P mit 6.0.0: weiß

Samsung s6 mit 5.1.1: grau

android Emulator Nexus 6P mit 5.1.1: grau

Xiaomi 4 LTE mit 4.4.4: grau

android Emulator Nexus 6P mit 4.4.4: grau

basierend auf dem obigen Test, ich denke, die auf API-Ebene im Zusammenhang Hintergrund.

Wenn ich den Hintergrund auf weiß in Xml einstelle, kann ich für API 22 und darunter weißen Hintergrund sehen.

Irgendwelche Ideen?

+0

Teilen Sie Ihre XML-Code –

+0

Ich denke, es ist nichts mit einigen API-Ebene zu tun. Es ist etwas gerätespezifisch, denke ich. Ich habe das Problem nie wirklich gesehen, da ich immer eine richtige Hintergrundfarbe eingestellt habe. Das wird auch empfohlen, denke ich. –

+0

Ich würde wetten, dass das 'ScrollView' in allen API-Ebenen transparent ist, ist das nicht der Hintergrund des Elternteils? – pskink

Antwort

2

Wenn Sie keine explizite Farbe angegeben haben, könnte die Farbe vom Standarddesign des Geräts abweichen. Es hängt nicht von der API-Ebene ab, sondern vom Einheitenthema. Daher ist es auch möglich, dass Sie auf zwei verschiedenen Geräten unterschiedliche Farben für dieselbe API-Ebene sehen. Wenn Sie also auf allen Geräten konsistent sein möchten, empfiehlt es sich immer, die gewünschte Farbe explizit festzulegen.

+0

ja! Setze Wert explizit für was ich will. Danke. aber ich frage mich, warum die Farbe über API-Ebenen ändert, finden Sie in meinem Beitrag für getestete Geräte. –

+0

Da jede API-Ebene ein bestimmtes Thema enthält, z. B. holo.light oder holo.dark usw. Je nach dem Thema für diese API ändert sich die Farbe. Gleiches gilt für verschiedene Geräte. Wenn Sie Ihr Komponentenfarbthema unabhängig machen möchten, müssen Sie eine explizite Farbe verwenden. – Prateek

+0

scheint vernünftig zu sein. aber ich denke nicht wirklich themas konnten sich für den einfachen Hintergrund so sehr unterscheiden ... –

0

Versuchen Sie dies in Ihre Stile für den gleichen Hintergrund in verschiedenen Android-API:

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