Android: Problème ScrollView

J'ai eu un certain nombre de problèmes avec ScrollViews. Récemment, j'ai essayé de créer un LinearView dont le contenu dépasse la taille de l'écran, j'ai donc créé la nouvelle mise en page avec l'élément parent ScrollView et défini sa largeur et sa hauteur sur des valeurs personnalisées (la mise en page doit apparaître comme une boîte de dialogue - ne remplissant pas tout l'écran).

Lorsque l'élément est sélectionné, la bordure rouge semble embrasser le rectangle de ScrollView layoutwidth et LayoutHeight prédéfinis, ce qui est OK. Alors je l'ai placé à l'intérieur de la LinearView et définissez les valeurs LayoutWidth et LayoutHeight sur fill_parent.

Ensuite, quand j'ai commencé à ajouter les éléments dans LinearLayout, la bordure (Red lile) a enveloppé les éléments insérés, pas tout le scrollview parent.

Ainsi, lorsque le contenu de LinearLayout (enfant de ScrollView) dépassait la taille du parent ScrollView, le défilement n'apparaissait pas et les éléments du bas sont simplement invisibles.

Bref.. dans ce cas, le contenu XML était trop vaste pour afficher le question ici et maintenant j'ai le même problème avec l'exemple plus simple.

La partie suivante de la mise en page est destinée à être un EditText défilant (dans le cas où l'entrée de l'utilisateur dépasse la taille principale du widget). Je voulais définir la hauteur EditText à 120px, donc j'ai défini la hauteur ScrollView parent à 120px et l'EditText enfant à fill_parent. Encore une fois dans ce cas, EditText ne remplit pas toute la zone ScrollView mais une seule ligne:

 <ScrollView android:layout_height="120px" android:layout_width="fill_parent">
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent">
</EditText>
</ScrollView>

Est-ce que quelqu'un sait comment remodelez le contenu ci dessus afin que EditText remplisse le contrôle parent et dans le cas où l'entrée de l'utilisateur dépasse la taille du contrôle le défilement apparaît?

Merci!

Modifier:

Voici les captures d'écran de la mise en page

retiré morts lien ImageShack
retiré morts ImageShack lien

29
demandé sur SuperBiasedMan 2010-01-09 15:14:19

2 réponses

Votre EditText doit avoir une hauteur de wrap_content. fill_parent n'a pas de sens dans un ScrollView. Si vous voulez le EditText pour remplir votre ScrollView lorsque son contenu est plus petit que le ScrollView, utiliser android:fillViewport="true" sur ScrollView.

95
répondu Romain Guy 2012-02-20 11:05:51

Oui, comme L'a dit Romain, scrollview a besoin d'un combo suivant.

  1. pour ScrollView android:fillViewport="true"
  2. pour l'enfant de ScrollView android:layout_height="wrap_content"
9
répondu JonA 2014-06-09 15:33:25