web-dev-qa-db-fra.com

Pourquoi étend ImageView marqué comme erreur?

Android Studio marque comme erreur cette ligne:

public class ParallaxView extends ImageView

Voici l'erreur:

This custom view should extend Android.support.v7.widget.AppCompatImageView instead less... (Ctrl+F1) 

In order to support features such as tinting, the appcompat library will automatically load special appcompat replacements for the builtin widgets.

However, this does not work for your own custom views.  Instead of extending the Android.widget classes directly, you should instead extend one of the delegate classes in Android.support.v7.widget.AppCompat.

Il me recommande d'étendre AppCompatImageView mais mon test JUnit ne passe pas parce que AppCompatImageView a besoin d'une maquette Context avec des ressources et Imageview n'en a pas besoin .

Voici la question pour résoudre l'autre problème:
NullPointerException créant une AppCompatImageView avec un faux contexte

Puis-je ignorer cette erreur et utiliser ImageView? Une autre solution?

11
MarcGV

L'utilisation des widgets AppCompat vous permet d'avoir des fonctionnalités de conception matérielle (et d'autres nouvelles) sur les appareils avec des versions pré-Lollipop d'Android.

À ce stade, AppCompatImageView ne prend en charge que la teinte d'arrière-plan et les dessins vectoriels. Si vous ne les utilisez pas, étendre le ImageView normal sera très bien.

18
dev.bmax

Ce n'est pas vraiment une erreur. L'application se construit avec succès, non? C'est seulement Android Studio qui le marque comme erreur.

Vous pouvez changer cela en avertissement en modifiant les paramètres d'inspection "Widgets personnalisés compatibles avec les applications".

3
rickul