2009-07-17 6 views
4

en fait, j'ai gardé un scrollview. Dans cette vue de défilement, j'ai défini une vue de texte au moment de l'exécution. Je veux définir le texte dans cette vue de texte. La corde que je vais mettre est une grande longueur, donc je ne peux pas obtenir la corde sur une seule ligne et je peux obtenir deux ou trois lignes. Ma taille de la largeur de la disposition de la vue défilée est 250px. Je ne veux pas dépasser cette taille ... Mon attente est que je veux voir cette chaîne dans ce scrollview comme une seule ligne si la chaîne dépasse la taille de défilement alors il devrait défiler horizontalement dans la vue de texte. J'ai essayé quelques fonctions comme la mise en défilement horizontal pour scrollview et textview mais rien ne fonctionne. Pls m'aider à résoudre ce problème.Comment faire pour définir une longue chaîne dans une vue de texte dans une seule ligne avec le rouleau horizontal

URS

s.kumaran.

+0

si possible, mettez le TextView à l'extérieur de HorizontalScrollView – dira

Répondre

3

essayer ,,

TextView.setHorizontallyScrolling (vrai) TextView.setLines (1);

où avez-vous ajouté le scrollview de textview..Inside nous en mesure d'ajouter une seule vue ...

+0

Merci pour votre réponse immédiate, mais j'essaie déjà ces deux façons, mais ne fonctionne pas man. – Kumar

+0

Malheureusement, pas assez pour obtenir le TextView pour faire défiler le texte! Voir ma réponse pour la solution non-intuitive;) – 3c71

2

Prenez TextView et HorizontalScrollView. Mettez simplement textview dans HorizontalScrollView. Et oui assurez-vous de mentionner android:singleLine="true" dans le TextView.

4

vous devez utiliser ces deux attributs XML dans votre widget TextView:

android:scrollHorizontally="true"

android:singleLine="true"

donc votre mise en page XML doit contenir quelque chose comme ceci:

<TextView 
     android:text="Single-line text view that scrolls automatically if the text is too long to fit in the widget" 
     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:marqueeRepeatLimit ="marquee_forever" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:scrollHorizontally="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

vous pouvez obtenir la méthode correspondante pour ces attributs si vous créez votre TextView avec du code, référez-vous à TextView documentation:

setHorizontallyScrolling(boolean) 
setTransformationMethod(TransformationMethod) 
setMarqueeRepeatLimit(int) 
+0

Bonne solution, je suis confronté à ce problème, maintenant se débarrasser –

0

pour moi, celui-ligne dans le fichier XML EditText était assez:

android:singleLine="true" 
1

J'ai eu le même problème avec un TextView dans une table et rien en détail ici résolu le fait qu'il wouldn 't défile horizontalement (automatiquement, ce qui pourrait ne pas être l'effet désiré de OP, mais ce n'est pas clair).

En comparant un code qui a fait le travail, je trouve le TextView doit être sélectionné pour le défilement pour démarrer:

TextView text_view = new TextView(context); 
text_view.setLines(1); 
text_view.setHorizontallyScrolling(true); 
text_view.setMarqueeRepeatLimit(-1); // At this point the view is not scrolling! 
... 
text_view.setSelected(true);   // Get scrolling to start 

Semble fou, mais cela fonctionne.

Questions connexes