wake-up-neo.com

android: Theme.Material.Light benötigt API Level 21 (aktuell mindestens 8)

Ich möchte Material Theme in meiner Anwendung verwenden, die mindestens die SDK-Version 8 hat. Laut Dokumentation - "Das Material Theme ist nur in Android 5.0 (API-Level 21) und höher verfügbar. Die Version 7 Unterstützungsbibliotheken bieten Themen für einige Widgets Materialdesignstile und Unterstützung für das Anpassen der Farbpalette.

Android: Theme.Material.Light erfordert API-Level 21 (aktuell mindestens 8).

Oder habe ich etwas falsch verstanden? Jeder Vorschlag wird geschätzt. Danke im Voraus.

40
PPD

Dazu benötigen Sie einen Ordner mit 2 Werten.

Eine, die standardmäßig vorhanden ist, und eine andere, die Sie in Ihrem res-Ordner erstellen und als values-v21 bezeichnen müssen.

Verwenden Sie im Ordner mit den Standardwerten in der Datei styles.xml ein anderes Thema als das Materialdesign. Verwenden Sie in der Datei styles.xml des von Ihnen erstellten Ordners values-v21 das Materialdesign.

Das Android-Telefon übernimmt automatisch die von ihm unterstützte styles.xml. Wenn das Telefon Material Design (Lollipop-Geräte) unterstützt, verwendet Ihre App das Materialdesign (Ordner "values-21").

wenn dies nicht der Fall ist (bei Handys mit älteren Versionen Android)), wird der Ordner mit den Standardwerten verwendet.

41
Hirak Chhatbar

Sie müssen Android:theme="@style/Theme.AppCompat.Light" Thema, um ein Materialdesign zu erhalten.

Stellen Sie sicher, dass Ihre min 8 und Ihr Ziel 21 ist. Und Sie verwenden Build Tools/SDK 21.

33
Pedro Oliveira

Pedro Oliveira hat recht in Bezug auf Theme.AppCompat, aber einige wesentliche Informationen fehlen in dieser Antwort.

Ein Blog-Beitrag mit dem Titel AppCompat v21: Materialdesign für Geräte vor Lollipop! von Chris Banes aus dem Android -Team beantwortet wahrscheinlich am besten die Frage, wie Material Theme für API-Level vor 21 zu bekommen ist.

Zusammenfassend benötigen Sie appcompat-v7 Abhängigkeit :

dependencies {
    ...
    compile "com.Android.support:appcompat-v7:21.0.3"
}

Verwenden Sie danach für die dunkle Version als Basisthema:

<style name="AppTheme" parent="Theme.AppCompat">
</style>

Und für die leichte Version:

<style name="AppTheme" parent="Theme.AppCompat.Light">
</style>

Und wenn Sie AppCompat noch nicht kennen, sollten Sie Folgendes wissen:

Alle Ihre Aktivitäten müssen sich von erstrecken ActionBarActivity*. Es erstreckt sich von FragmentActivity aus über die v4-Unterstützungsbibliothek, sodass Sie weiterhin Fragmente verwenden können.

* Hinweis: In letzter Zeit wurde ActionBarActivity zugunsten von AppCompatActivity abgelehnt.

Aber du solltest unbedingt den gesamten Setup-Abschnitt dieses Blog-Beitrags lesen! (Die Informationen zu Toolbar vs Action Bar und einige der Kommentare sollten Sie wahrscheinlich auch nicht verpassen.)

25
Jonik

Importieren Sie in Ihre NameActivity.Java-Datei Folgendes:

import Android.support.v7.widget.Toolbar;

Kommentar zum vorherigen:

//import Android.widget.Toolbar;

Damit ist das Problem gelöst.

2
Arturo Castro