Je crée un textView de manière programmatique. Existe-t-il un moyen de définir le style de ce textView ? Quelque chose de similaire à
style="@android:style/TextAppearance.DeviceDefault.Small"
que j'utiliserais si j'avais un layout.xml
fichier.
Je crée un textView de manière programmatique. Existe-t-il un moyen de définir le style de ce textView ? Quelque chose de similaire à
style="@android:style/TextAppearance.DeviceDefault.Small"
que j'utiliserais si j'avais un layout.xml
fichier.
Il n'est actuellement pas possible de définir le style d'une vue de manière programmatique.
Pour contourner ce problème, vous pouvez créer un fichier xml de mise en page de modèle avec le style attribué, par exemple dans le fichier res/layout
créer tvtemplate.xml
comme avec le contenu suivant :
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is a template"
style="@android:style/TextAppearance.DeviceDefault.Small" />
puis gonflez-le pour instancier votre nouveau TextView :
TextView myText = (TextView)getLayoutInflater().inflate(R.layout.tvtemplate, null);
En fait, cela est possible à partir du niveau 21 de l'API.
TextView a un Constructeur de 4 paramètres :
TextView (Context context,
AttributeSet attrs,
int defStyleAttr,
int defStyleRes)
Les deux paramètres du milieu ne sont pas nécessaires dans ce cas. Le code suivant crée un TextView directement dans une activité et définit uniquement sa ressource de style :
TextView myStyledTextView = new TextView(this, null, 0, R.style.my_style);
Essayez ceci
textview.setTextAppearance(context, R.style.yourstyle);
cela peut ne pas fonctionner essayez de créer un xml avec le textview comme ceci
textviewstyle.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@android:style/TextAppearance.DeviceDefault.Small" />
Pour obtenir le style désiré, gonflez le xml qui contient le textview.
TextView myText = (TextView)getLayoutInflater().inflate(R.layout.tvstyle, null);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.