web-dev-qa-db-fra.com

L'éditeur de disposition d'Android Studio ne peut pas restituer les vues personnalisées

Dans Android Studio, l'éditeur de disposition ne peut pas prévisualiser les vues personnalisées au format xml.

Exemple très simple:

public class MyCustomView extends FrameLayout {
    public MyCustomView(Context context) {
        super(context);
    }

    public MyCustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyCustomView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
}

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="horizontal">

    <com.myprojectxxx.view.MyCustomView
        Android:layout_width="48dp"
        Android:layout_height="48dp" />

</LinearLayout>

Android Studio dit toujours:

Problèmes de rendu

Les classes suivantes sont introuvables:

  • com.myprojectxxx.view.MyCustomView (chemin de construction du correctif, classe Create)

Astuce: essayez de construire le projet

Bien sûr, j'ai ce cours. Si je clique sur "Créer une classe", il se plaint que la même classe existe déjà. Si je reconstruis ce projet, rien ne change.

Et, oui, le projet fonctionne très bien sur mon appareil Android. En outre, il est très bien rendu dans Eclipse ADT. Cependant, dans Android Studio, il est toujours indiqué que "LES CLASSES NE PEUVENT PAS ÊTRE TROUVÉES".

Android Studio n'a pas la possibilité de prévisualiser un fichier XML avec des vues personnalisées? Quel est le problème avec cela?

44
Naetmul

Les composants de vue personnalisée sont également pris en charge et affichés correctement dans IDEA. Toutefois, comme IntelliJ IDEA utilise les fichiers de classe de votre répertoire de sortie pour restituer ces composants, vous devez commencer par construire-> projet sur votre projet.

 enter image description here

référence

14
Badamchi Davoud

Face au même problème, j'ai dû remplacer les constructeurs à trois et quatre arguments:

public View(Context context, AttributeSet attrs, int defStyle) public View(Context context, AttributeSet attrs, int defStyle, int defStyleRes)

Reconstruisez ensuite le projet.

4
SleepyTonic

Devrait être corrigé par le commit suivant.

https://Android-review.googlesource.com/#/c/59090/

1
Naetmul

C'est peut-être aussi parce que vous utilisez le mauvais thème pour le rendu de vos mises en page. Assurez-vous de choisir celui que vous utilisez dans votre projet.

 enter image description here

0
Javier Mendonca