2014-12-09 10 views
6

Ich versuche, ein Tutorial zu folgen, um zu zeigen, nehme an, wie eine schwimmende Schaltfläche hinzufügen und im Tutorial sagt, es ist das Attribut android:elevation auf die Tasten xml wie folgt hinzuzufügen:Unbekanntes Attribut android: Höhen

<ImageButton 
    android:layout_width="30dp" 
    android:layout_height="30dp" 
    android:id="@+id/editButton" 
    android:layout_gravity="center|right" 
    android:clickable="false" 
    android:background="@drawable/edit_grey" 
    android:layout_marginRight="1dp" 
    android:elevation="@dimen/elevation_low"/> 

aber ich erkenne dieses Attribut nicht ... ich glaube es hat etwas mit meinem Projektziel oder sdk zu tun ... kann mir jemand helfen?

+0

Welche API-Ebene verwenden Sie? Wenn Sie weniger als 21 verwenden, ändern Sie es bitte in 21 –

+0

add tools: targetApi = "Lollipop", wenn Sie diese Warnung nicht möchten – Killer

Antwort

13

Um android:elevation zu verwenden, müssen Sie wie bei jeder anderen Android 5.0-API gegen Android 5.0 (API 21) kompilieren. Dies bedeutet nicht, dass Sie die Ziel-SDK-Ebene oder die Mindest-SDK-Ebene ändern müssen.

Hinweis: Ihre XML-Datei kann weiterhin eine Warnung ausgeben, dass android:elevation nur unter Android 5.0 oder höher funktioniert. Diese Warnung dient nur dazu, Ihnen zu sagen, dass frühere Versionen von Android keinen Erhöhungsschatten auf der schwebenden Aktionsschaltfläche haben werden. Das verursacht jedoch keinen Fehler - frühere Versionen von Android ignorieren XML-Attribute, die sie nicht verstehen.

1

Das Elevation-Attribut ist ziemlich neu. Es definiert den Lift der Ansicht, auf die es angewendet wird. Es wird für das Material Design in den neuesten Android Versionen verwendet.

Material Design

Sie es auf API-Ebene 21 verwenden können, nehme ich an Ihre gezielte Stufe niedriger als das ist.

Wenn Sie nur einige Abschattung erreichen wollen Sie diese verwenden können:

Shadow Drawables for Views

Oder Sie können die SupportLibrary mit CardViews oder so ähnlich verwenden, unterstützen sie Erhebung von API Ebene 7:

[How-to] Use the v21 Support Libs on Older Versions & Target L While Remaining Backwards-Compatible

Hoffe, das hilft.