Comment Utiliser la Vue.isInEditMode() dans les vues personnalisées pour ignorer le code?

Je suis en utilisant une vue personnalisée pour montrer dégradé de couleur rempli TextView comme ci-dessous:

public class GradientTextView extends TextView {
public GradientTextView(Context context) {
    super(context, null, -1);
}

public GradientTextView(Context context,
                        AttributeSet attrs) {
    super(context, attrs, -1);
}

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

    if (!isInEditMode()) {
        GradientTextView.getTextColor(context, null, defStyle);
    }
}

@Override
protected void onLayout(boolean changed,
                        int left, int top, int right, int bottom) {
    super.onLayout(changed, left, top, right, bottom);
    if (changed) {
        getPaint().setShader(new LinearGradient(
                0, 0, 0, getHeight(),
                Color.parseColor(Color.WHITE), Color.parseColor(Color.BLACK),
                Shader.TileMode.CLAMP));
    }
}

}

Il travaille finement sur le dispositif ou l'émulateur, mais je reçois Problème de Rendu dans xml visualiseur de Android studio qui suggère l'utilisation de la Vue.isInEditMode() dans vos vues personnalisées pour ignorer le code ou afficher des données de l'échantillon lorsqu'ils figurent dans l'IDE et affiche cette erreur de pile:

java.lang.NullPointerException

Quelqu'un peut-il m'aider sur ce?

InformationsquelleAutor Ossen | 2014-02-02