web-dev-qa-db-fra.com

Utilisation de Android L Material Design sur KitKat

Lecture de la section Compatibilité de Android L Developer Preview ( http://developer.Android.com/preview/material/compatibility.html ) J'ai vu que je peux créer une APP en utilisant L-sdk et également pouvoir l'exécuter sur des sdk plus anciens (comme KitKat).

J'ai créé un nouveau projet en utilisant Android L sdk et configuré "build.gradle" comme indiqué dans cet article: Android Studio: échec [INSTALL_FAILED_OLDER_SDK] .

J'ai essayé les deux configurations:

  • celui proposé en question qui me donne cette erreur:

    pkg: /data/local/tmp/com.example.{my user name}.materialapp Failure [INSTALL_FAILED_OLDER_SDK]

  • et celui proposé en réponse qui me donne une erreur sur

    <style name="AppTheme" parent="Android:Theme.Material.Light"></style>

J'ai cherché sur d'autres questions sur StackOverflow mais je ne trouve aucune solution.

SOLUTION: Android L aperçu le style de matériau ne peut être utilisé que sur les appareils qui exécutent Android L. La "compatibilité" est uniquement un aperçu et il n'est pas activé.

18
Luca

Vous devez créer 2 fichiers styles.xml différents avec le même nom que vous placerez dans différents dossiers.

Le premier, ira ici:

res/styles.xml

et ne ressemblera PAS à une référence au thème Matériel (utilisez le thème Holo):

aurait donc quelque chose comme ça:

<style name="AppTheme" parent="Android:Theme.Holo.Light"></style>

Le second ira ici:

res/values-v21/styles.xml

et contiendra la référence au nouveau thème Matériel, et aurait:

<style name="AppTheme" parent="Android:Theme.Material.Light"></style>

Le Android utilisera automatiquement le bon en fonction de l'API prise en charge par l'appareil (donc sur les appareils API 21, il utilisera Material, et sur tous les autres appareils, il utilisera tout ce que vous définissez)) .

11
Booger

Cela a changé depuis la réponse d'origine, car Google a publié une meilleure prise en charge de la conception de matériaux dans les bibliothèques AppCompat (qui prennent principalement en charge toutes les versions d'Android).

À ce stade, vous devez utiliser ces bibliothèques pour tous les développements, puis vous pourrez prendre en charge les fonctionnalités liées à la conception matérielle dans toutes vos applications.

Voici comment le configurer: https://developer.Android.com/topic/libraries/support-library/setup.html

1
Booger