Android affichage personnalisé devrait s'étendre AppCompatTextView
J'ai créé personnalisé simple vue qui s'étendait de TextView
, dans Android Studio, j'obtiens cette wanrning
This custom view should extend android.support.v7.widget.AppCompatTextView instead
et je ne peux pas utiliser clickable
propertise, par exemple:
<com.myapp.test.Widgets.FontAwesome
android:layout_width="60dp"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:background="?selectableItemBackground"
android:gravity="center"
android:clickable="@{()->presenter.clickOnSend()}"
android:text="@string/font_icon_post_message"
android:textColor="@color/gray_text_color"
android:textSize="40sp"/>
j'obtiens cette erreur pour clickable
propertise:
Error:(91, 46) Cannot find the setter for attribute 'android:clickable' with parameter type lambda on com.myapp.test.Widgets.FontAwesome.
ma classe personnalisée:
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
public class FontAwesome extends TextView {
public FontAwesome(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public FontAwesome(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public FontAwesome(Context context) {
super(context);
init();
}
private void init() {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
"fonts/fontawesome.ttf");
setTypeface(tf);
}
}
comment puis-je résoudre ce problème?
extend android.support.v7.widget.AppCompatTextView
il est le même que le TextView . AppCompatTextView utiliser pour fournir une compatibilité ascendante pour de nouvelles fonctions pour les anciennes versions d'Android.thois n'est pas un problème, vous pouvez prolonger ce que vous voulez. Android Studio seulement vous avertit que AppCompatTextView est plus apte à être utilisé à des fins de compatibilité.
le code sera toujours exécuté ....il n'est qu'un avertissement
est la liaison de données est activé ?
OriginalL'auteur tux-world | 2017-04-06
Vous devez vous connecter pour publier un commentaire.
C'est un
Warning
. Pas D'Erreur . Il sera mieux si vous utilisez AppCompatTextView au lieu de TextView .Ne pas
Bonne Approche
Vous devez utiliser AppCompatTextView
Afin de prendre en charge des fonctionnalités telles que la teinture, de la AppCompat bibliothèque de charger automatiquement spécial AppCompat de remplacement pour les builtin widgets. Toutefois, cela ne fonctionne pas pour votre propre point de vue. Au lieu de prolonger le android.widget de classes directement, vous devriez au lieu de prolonger l'un des délégués de classes dans android.de soutien.v7.widget de.Appcompat
il peut lire qu'à partir de l'avertissement lui-même
Donc, si nous n'avons pas besoin backgroundTint ni autoSize fonctionnalité, on peut encore prolonger un customView de TextView, droit?
OriginalL'auteur IntelliJ Amiya
J'étais avec un problème similaire, mais c'est corrigé. Il est probable que vous ne voyez le résultat sur la durée d'exécution de la première fois. Je n'ai pas fait de test pour projet de reconstruction de nouveau sans avoir à lancer l'application.
}
OriginalL'auteur user3690964