2017-02-08 2 views
0

Ich bin nur ein Anfänger in Android und lernen, wie man Stile und Themen erstellen. ich diesen xml finden Sie hier:Attribute ohne android Namespaces auf xmls

Material Log In Demo

<resources> 

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
</style> 

<style name="AppTheme.Dark" parent="Theme.AppCompat.NoActionBar"> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <item name="colorAccent">@color/accent</item> 

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

    <item name="colorControlNormal">@color/iron</item> 
    <item name="colorControlActivated">@color/white</item> 
    <item name="colorControlHighlight">@color/white</item> 
    <item name="android:textColorHint">@color/iron</item> 

    <item name="colorButtonNormal">@color/primary_darker</item> 
    <item name="android:colorButtonNormal">@color/primary_darker</item> 
</style> 

<style name="AppTheme.Dark.Dialog" parent="Theme.AppCompat.Dialog"> 
    <item name="colorAccent">@color/white</item> 
    <item name="android:textColorPrimary">@color/iron</item> 
    <item name="android:background">@color/primary</item> 
</style> 

Was ich bin verwirrt darüber ist, warum einige name Attribute <item> Richtlinien haben keinen android Namespace auf sie, während andere haben? Wie die colorButtonNormal und android:colorButtonNormal. Kann jemand bitte erklären, wann/warum sie gebraucht werden?

Antwort

0

Die android doc beziehen und das Namensattribut als "Erforderlich" finden. Android-Ressourcen verwenden XML, was bedeutet, dass sie XML-Schema verwenden müssen. Wenn sie einen Namespace verwenden => wollen sie keine Konflikte mit dem Namen. Hoffe, das hilft Als Referenz: Ein "Schema" ist erforderlich, um die Annahme (oder Erstellung) von XML-Dokumenten mit einem standardisierten Elementnamen und Hierarchie-Struktur zu ermöglichen.

0

afaik, müssen wir android:propertyName verwenden, um die Eigenschaften eines bestimmten Stils basierend auf der API-Ebene zu überschreiben. Zum Beispiel in Eigenschaftsnamen von value/styles.xml können Sie verwenden müssen:

<style name="AppTheme.Dark.Dialog" parent="Theme.AppCompat.Dialog"> 
    ... 
    <item name="android:background">@color/primary</item> 
</style> 

Aber in values-v14/styles.xml müssen Sie verwenden:

<style name="AppTheme.Dark.Dialog" parent="Theme.AppCompat.Dialog"> 
    ... 
    <item name="background">@color/primary</item> 
</style> 

Hier ist die <item name="android:background"> und <item name="background"> die gleiche Bedeutung hat. Nur eine andere Namenskonvention für die spezifische API-Ebene.

Bitte beachten Sie, dass das Beispiel nur zu Demonstrationszwecken dient.

+0

Ich werde versuchen, die zugehörige Dokumentation zu finden und hier aufzunehmen. Im Moment basiert die Antwort nur auf meiner Erfahrung. –

Verwandte Themen