9
votes

Android - Deux phrases, deux styles, une TextView

Je suis tyrienie pour afficher un TextView qui contient deux phrases et je veux qu'ils soient l'une après l'autre comme ceci:

<style 
    name="f15">
    <item name="android:typeface">sans</item>
    <item name="android:textSize">17dp</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textColor">@color/grey_dark_emperor</item>
</style>


4 commentaires

Utilisez-vous 2 TextViews pour une raison? Je pense que cela peut être facilement fait avec un seul TextView. De cette façon, l'emballage sera automatiquement effectué comme vous le souhaitez.


Regardez à l'aide d'utiliser Spanablestring dans un seul TextView


u a dit que la taille d'A & B n'est pas constante..Ce signifie que la valeur est dynamique RT?


J'utilise ou que je préfère utiliser, un TextView


6 Réponses :


2
votes

Vous pouvez utiliser des balises HTML pour obtenir l'effet souhaité avec une vue de texte unique. Vérifiez Ce et Ceci et aussi Ce .


2 commentaires

Je veux ajouter différents styles pour chaque phrase, donc j'ai besoin de support pour les styles de mise en page


Avez-vous vérifié les balises dans le blog de Commonsware que j'avais mentionnées? Il existe de nombreux paramètres pour changer le style du texte que vous souhaitez. Ne pouvez-vous pas utiliser " ... "> Pour chaque phrase et obtenez votre problème résolu? .. Si vous êtes toujours confronté au problème. hésiter à poster ce que vous avez essayé avec des balises HTML



1
votes

Vous pouvez utiliser HTML pour afficher votre texte

myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>"));


1 commentaires

Je veux ajouter différents styles pour chaque phrase, donc j'ai besoin de support pour les styles de mise en page



16
votes

Vous pouvez essayer d'utiliser le SpannablestringBuilder comme suit:

String firstString = "AAAAAA: ";
String secondString = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB";

SpannableStringBuilder stringBuilder = new SpannableStringBuilder(firstString + secondString);
stringBuilder.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, firstString.length(),
            Spannable.SPAN_INCLUSIVE_INCLUSIVE);
stringBuilder.setSpan(new ForegroundColorSpan(Color.rgb(255, 0, 0)), firstString.length() + 1,
            firstString.length() + secondString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(stringBuilder);


3 commentaires

Puis-je ajouter un soutien aux styles? Je n'ai pas mentionné cette phrase A ... et B ... avoir des styles différents


Oui, vous pouvez utiliser TextAppeAranceBan en tant que paramètre à la fonction SetSpan Pour définir la couleur du texte, la taille, le style et la police de caractères.


J'ai essayé tant de solution, mais celui-ci m'a vraiment aidé à faire du Texview de Widget en différentes couleurs pour deux phrases en simple TextView.



0
votes
<RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    <TextView 
            android:id="@+id/first_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="AAAAAA: BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" />                
</RelativeLayout>
Use this as xml.

6 commentaires

Comme je l'ai mentionné un ... & B ... ne sont pas constants et diffèrent


Ensuite, vous pouvez définir de manière programmative le texte.


Ok ... vous devez les stortez par programme. Veuillez préciser le style que vous souhaitez donner à chacun d'eux? Vous pouvez atteindre cela à l'aide de SpannableString.


Veuillez vous reporter à la réponse de Lexmiir.


Puis-je ajouter des styles via SpannableString?


Veuillez référer la réponse de Lexmiir ci-dessus. C'est exactement ce que je veux vous dire.



0
votes

En utilisant Single TextView uniquement, vous ne pourrez le faire. Vous devez juste ajouter deux chaînes en Single View. xxx


1 commentaires

Je veux ajouter différents styles pour chaque phrase, donc j'ai besoin de support pour les styles de mise en page



-1
votes

u avez écrit la position du deuxième texte à droite du premier texte.

android:layout_toRightOf="@id/first_text"


0 commentaires