2017-07-27 3 views
1

Ich erstelle eine Android Wear App und versuche, es ist die Grundfarbe. Ich erstelle und setze ein Thema auf die gleiche Weise wie für eine mobile App. Jedes Attribut wird bis auf die Grundfarbe korrekt geändert. Es wird immer die Standardfarbe sein, die Android verwendet. Ich verwende das gleiche Thema auf der Companion-App und es funktioniert dort. Gibt es etwas, das mir fehlt, das in der Kleidung anders gemacht wird? Gibt es etwas, das diese Einstellung außer Kraft setzen könnte?Festlegen der Primärfarbe für Android Wear App

Ich habe versucht, das übergeordnete Thema zu Material oder Compact.app zu ändern.

Android Manifest:

<application 
    android:name="com.turndapage.navmedia.App" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Theme.Nav"> 

styles.xml

<resources> 
<style name="Theme.Nav" parent="@android:style/Theme.DeviceDefault"> 
    <!-- your app branding color for the app bar --> 
    <item name="colorPrimary">@color/primary</item> 
    <!-- darker variant for the status bar and contextual app bars --> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <!-- theme UI controls like checkboxes and text fields --> 
    <item name="colorAccent">@color/accent</item> 
    <item name="android:colorForeground">@color/primary</item> 
    <item name="android:colorBackground">@color/Viewport_Background</item> 
</style> 

Colors.xml

<resources> 
<color name="primary">#8c6354</color> 
<color name="Viewport_Background">#4d362e</color> 
<color name="primary_dark">#66483d</color> 
<color name="Action">#a67563</color> 
<color name="accent">#a1887f</color> 
<color name="Background_Shaded">#000000</color> 
<color name="background">#000000</color> 
<color name="digital_text">#ffffff</color> 

Antwort

0

Sie müssen die android: Präfix Versionen verwenden:

<style name="Theme.Nav" parent="@android:style/Theme.DeviceDefault"> 
    <!-- your app branding color for the app bar --> 
    <item name="android:colorPrimary">@color/primary</item> 
    <!-- darker variant for the status bar and contextual app bars --> 
    <item name="android:colorPrimaryDark">@color/primary_dark</item> 
    <!-- theme UI controls like checkboxes and text fields --> 
    <item name="android:colorAccent">@color/accent</item> 
    <item name="android:colorForeground">@color/primary</item> 
    <item name="android:colorBackground">@color/Viewport_Background</item> 
</style> 

Die Nicht-Namespace verisons von AppCompat verwendet werden, die nicht benötigt wird, oder auf Android Wear verwendet (Theme.DeviceDefault erweitert Theme.Material auf Wear-Geräten).

Die colorPrimary wird standardmäßig nicht in den Oberflächen verwendet, Sie müssen sie also manuell über ?android:attr/colorPrimary als Hintergrund für eine Ansicht referenzieren.

Beachten Sie, dass Sie nicht die Hintergrundfarbe der Meldungen im Stream nach this post ändern können - jedoch wird die notification color verwendet werden, wenn der Benutzer in die Benachrichtigung tippt (vorausgesetzt, Sie keinen Inhalt Vorsatz gesetzt haben - in den Fällen, Sie werden nur in Ihre App gehen).

+0

Ich habe Ihr Beispiel versucht und ich habe keinen Unterschied gesehen. Ich habe auch versucht, mit 'parent =" @ android: style/Theme.Material "' aber beide haben nicht funktioniert. Jede Farbe außer FarbePrimary funktioniert. –

+0

'colorPrimary' wird in keinem der eingebauten Widgets angezeigt, aber es ist sicherlich für Ihre eigene Verwendung über'? Android: attr/colorPrimary' verfügbar. Wo hast du erwartet, dass es auftaucht? – ianhanniballake

+0

Ich suche auf der Android-Entwickler-Seite. https://developer.android.com/training/material/theme.html Laut der Dokumentation sollte es in der Symbolleiste angezeigt werden. Es funktioniert in der mobilen Version. Ich bin hauptsächlich daran interessiert, die Benachrichtigungsfarbe zu ändern, da dies meine App auf einen Blick identifizieren soll. Ich könnte jeden Teil der Benutzeroberfläche manuell einstellen, wenn ich möchte, aber ich nehme an, dass es die Aktionsschubladen beeinflussen sollte, aber es ist nicht. –

Verwandte Themen