Les attributs d'affichage personnalisé Android ne fonctionnent pas après le passage à gradle
donc, j'ai récemment migré à gradle maintenant, ma vue personnalisée attributs de retourner la valeur null
mon projet ressemble à ce
--custom_icon_view //bibliothèque qui détient la vue personnalisée avec des attributs personnalisés
--mon application //c'est la principale application qui utilise la vue personnalisée
dans ma présentation, j'ai de l'espace de noms défini comme ceci :
xmlns:iconview="http://schemas.android.com/lib/be.webelite.iconview"
parce que l'utilisation apk/res-auto retuns un message d'erreur indiquant attribue n'a pas pu être identifié
c'est comment j'ai essayer d'obtenir le nom de l'icône définie en xml, cette habitude de travailler perfectlly
mais maintenant il ne marche pas. tout ce que j'ai changé, c'est la migration de gradle.
final TypedArray a = context.obtainStyledAttributes(attrs,be.webelite.iconview.R.styleable.icon);
icon_name = a.getString(be.webelite.iconview.R.styleable.icon_name);
donc je suppose que mon gradle.les fichiers de compilation, sont à l'origine du problème?
J'ai de la bibliothèque mis à
apply plugin: 'android-library'
la fin de l'application principale gradle.construire
apply plugin: 'android'
cela a été de me donner mal à la tête depuis 2 jours maintenant 🙁 toute aide/conseils sont très apperciated.
voici mon gradle fichiers
http://pastie.org/private/h57o8nanydosq0dtm6eiq
et voici la structure de dossier
http://pastie.org/private/nvbzomx2zeagdpzt8qqjsq
c'est comment je déclare mon point de vue dans le fichier xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<!-- tried res-auto didn't work -->
xmlns:iconview="http://schemas.android.com/apk/lib/be.webelite.iconview"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_gray">
<be.webelite.iconview.IconView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
iconview:icon_name="entypo_search"
android:textSize="25dp"/>
attrs.xml dans IconView>res>les valeurs répertoire
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="icon">
<attr name="name" format="string" />
</declare-styleable>
</resources>
source d'informationauteur Mars | 2014-01-09
Vous devez vous connecter pour publier un commentaire.
Ne peut pas vraiment voir ce qui ne va pas dans votre projet. Voici comment j'utilise la vue personnalisée & attrs dans la mienne :
Dans mon projet de bibliothèque :
attrs.xml :
dans ma classe personnalisée :
Dans mon Projet Principal ici un exemple de l'un de mes mise en page :
Espère que ça va aider ...
Edit :
dans mon construire.gradle de mon "projet"
Et ici le construire.gradle de ma bibliothèque :
EDIT1 :
Essayez d'utiliser cet espace de noms :
et remplacer :
par :
Si vous prenez les attributs dans votre affichage personnalisé de la méthode init dur avec les références à cet espace de noms spécifique puis, changeant de res-auto vous briser. Au lieu de cela, vous aurez besoin de changer ces références aussi à res-auto. Ou la méthode préférée est simplement de prendre le tapé de l'interface. Par exemple, dans mon projet, c':
Est devenu ce soit:
mais de préférence ceci:
Pour le faire fonctionner
Vous obtiendrez ce message d'erreur lorsque vous avez statiquement déclaré votre nom de paquet comme un espace de noms (e.g xmlns:iconview="http://schemas.android.com/apk/lib/be.webelite.iconview" dans votre cas) dans un fichier de mise en page et essayez de construire le projet avec les Peluches. De vérifier la Android Gradle Peluches vérifie:
Je pense que vous devriez utiliser
au lieu de
Si quelqu'un est là et rien ne semble fonctionner. De ce que je peux voir, ayant un caractère de soulignement dans votre espace de noms semble fonctionner correctement dans l'éditeur, mais les pauses de façon inattendue que vous générez l'application.