2017-05-31 1 views
-1

Leur quelque chose d'un peu étrange je ne peux pas comprendre. Dans le code source d'android nous pouvons trouver la référence à R.style.Theme_Material_Light mais quand je recherche dans tous les fichiers possibles la définition de Theme_Material_Light (dans les ressources, etc.) je ne peux pas le trouver. Alors d'où viennent les Theme_Material_Light et où trouver sa définition/implémentation?Où trouver la définition de Theme_Material_Light?

Répondre

0

La classe R est générée par le code à partir des ressources, la même que celle de votre projet.

As we discussed yesterday, vous pouvez trouver une copie des ressources de la plate-forme dans $ANDROID_SDK/platforms/android-NNN/data/res/, où $ANDROID_SDK est partout où vous avez installé le SDK Android et NNN est un niveau de l'API d'une version d'Android qui vous intéresse (par exemple, 25 pour Android 7.1).

Theme.Material.Light est défini dans res/values/themes_material.xml, au moins pour la copie des ressources de l'API Niveau 25.

+0

non, dans res/valeurs/leur est pas de fichier themes_material.xml :(ce pourquoi je demander parce que je ne pouvais pas le trouver ... – loki

+1

@loki Oui, il y en a.Si vous ne l'avez pas, vous êtes probablement sous le mauvais dossier de la plate-forme –

+1

@loki: Pour 'Theme.Material' et kin, votre API le niveau doit être supérieur ou égal à 21. Si vous recherchez un ancien niveau d'API, il n'y aura pas de ressource 'Theme.Material', car elle n'existait pas à l'époque – CommonsWare

0

Il est défini dans Android sdk (la ressource fiscale se trouve décompilation /system/framework/framework-res.apk)

+0

, mais pourquoi n'est-elle pas dans $ ANDROID_SDK/platforms/Android-NNN/data/res/comme toutes les autres ressources? – loki

+0

Oui, vous pouvez le trouver même là Si vous utilisez Android Stu dio utiliser CTRL + B pour aller à la déclaration de code/mise en œuvre –

+0

non, je ne peux pas le trouver :(Êtes-vous sûr que c'est? – loki