29 votes

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 le parent de l'élément ScrollView et définir sa largeur et sa hauteur de valeurs personnalisées (la mise en page doit apparaître comme des boîtes de dialogue de ne pas remplir la totalité de l'écran).

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

Puis, quand j'ai commencé à ajouter les éléments dans le LinearLayout la frontière (rouge lile) enveloppé les éléments insérés, pas l'ensemble du parent ScrollView.

Ainsi, lorsque le contenu de la LinearLayout (enfant de la ScrollView) a dépassé la taille de parent ScrollView le défilement ne s'affiche pas et les éléments bas sont tout simplement invisibles.

De toute façon.. dans ce cas, le contenu du fichier XML était trop vaste pour publier la question ici et maintenant, je vais avoir le même problème avec le plus simple exemple.

La partie suivante de la mise en page est destinée à être un défilement EditText (dans le cas où la saisie de l'utilisateur dépasse le principal de la taille du widget). Je voulais mettre l'EditText hauteur de 120px, j'ai donc mis le parent ScrollView hauteur de 120px et l'enfant EditText à fill_parent. De nouveau, dans ce cas, l'EditText de ne pas remplir l'ensemble de la ScrollView domaine, 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>

Personne ne sait comment remodeler le contenu ci-dessus de sorte que le EditText remplit 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 s'affiche?

Merci!!!!

Edit:

Ci-dessous les captures d'écran de la mise en page

alt textalt text

95voto

Romain Guy Points 57114

Votre EditText doit avoir une hauteur de wrap_content . fill_parent n'a aucune signification dans un ScrollView . Si vous souhaitez que le EditText remplisse votre ScrollView lorsque son contenu est plus petit que le ScrollView , utilisez android:fillViewport="true" sur le ScrollView .

9voto

JonA Points 349

Oui, comme Romain l'a dit, scrollview doit suivre le combo.

  1. pour ScrollView android:fillViewport="true"
  2. pour l'enfant de ScrollView android:layout_height="wrap_content"

Prograide.com

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.

Powered by:

X