2010-10-20 6 views
0

J'ai un TextView dans un ScrollView avec une image de fond spécifique. Mon problème est que si le texte est plus long qu'une ligne, le TextView s'étire autant que l'écran le permet. Je voudrais les tailles de vue du texte restent les mêmes (les dimensions de l'arrière-plan)TextView non redimensionnable

<ScrollView android:id="@+id/description" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="@dimen/padding_large" 
    > 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingTop="@dimen/padding" 
     android:paddingBottom="@dimen/padding" 
     android:paddingLeft="@dimen/padding_large" 
     android:paddingRight="@dimen/padding_large" 
     android:background="@drawable/textfield_background_small" 
     android:inputType="textMultiLine" 
     android:text="@string/step_description" 
     /> 
</ScrollView> 

Merci beaucoup

Répondre

0

Utilisation wrap_content fait une mise en page dynamique, à savoir sa taille va croître et se rétrécir en fonction de son contenu . Si vous changez à la place tous vos wrap_content en fill_parent les dispositions rempliront entièrement leur conteneur parent.

Vous pouvez en savoir plus sur la façon de déclarer correctement mises en page ici: http://developer.android.com/guide/topics/ui/declaring-layout.html

+0

Si je mets wrap_fill_parent pour le ScrollView, il étendra sur l'écran. Si je mets fill_parent pour le TextView, et wrap_content pour ScrollView c'est le même scénario que lors de la première fois où wrap_content les deux. Tout ce que je veux, c'est que TextView ait les tailles d'image d'arrière-plan, quand le texte atteint le bord droit, une nouvelle ligne à insérer et quand le texte atteint le bord inférieur, le défilement doit être activé. – Gratzi

+0

Ok, je pense que j'ai un peu mal compris votre question au début. Je ne pense pas que ce soit possible, du moins pas seulement en utilisant la mise en page XML (la taille de mise en page dynamique est basée sur le _content_ de 'View', et l'arrière-plan ne compte pas là (je pense)). Vous pouvez essayer (mais ce n'est qu'une supposition sauvage, je ne l'ai pas testé) pour remplacer le 'measure (int, int)' de votre 'View' dans le code (http://developer.android.com/reference/ android/view/View.html # measure% 28int,% 20int% 29), mais cela conduirait à la taille de votre vue en utilisant des tailles explicites - ce qui est généralement une mauvaise chose, car vous devriez vous efforcer d'utiliser des tailles relatives. – Nailuj

+0

Je sais que c'est mauvais d'utiliser des tailles explicites, mais je veux un TextView avec un certain fond, et je préférerais afficher l'image originale avec les tailles originales. Si elle est étirée, l'image ne semble pas très bonne, et je ne peux pas non plus utiliser le patch 9, à cause de son contenu. C'était le problème esthétique. Le problème d'agencement est que j'ai un ImageView à droite de la vue de texte qui n'est pas affiché, parce que le téléviseur occupe toute la largeur de l'écran. Peut-être que créer une ScrollView personnalisée est la meilleure solution pour cela ... Merci beaucoup! – Gratzi