2012-08-26 19 views
6

Estoy haciendo una aplicación para dispositivo Android y estoy tratando de tener un ScrollView dentro de un LinearLayout pero cuando intento hacerlo, ScrollView toma todo el espacio y los elementos que están detrás del ScrollView en LinearLayout disapear.Android: ScrollView en LinearLayout vertical

Por ejemplo: Si el
ScrollView no es "completa":
http://kakko76.free.fr/scroll2.jpg
Si el ScrollView está "llena":
http://kakko76.free.fr/scroll1.png

Como se puede ver el botón ... disapear
Aquí está el código de esta actividad:

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_marginLeft="50dp" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:orientation="vertical" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:background="@drawable/linearlayoutbackground" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/nom_des_joueurs" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:layout_marginBottom="30dp" /> 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <LinearLayout 
      android:id="@+id/llPlayersName" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      > 

     </LinearLayout> 

    </ScrollView> 

    <Button 
     android:id="@+id/okPlayersName" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="@string/ok" 
     android:background="@drawable/backgroundbutton" 
     android:layout_marginTop="30dp" /> 
</LinearLayout> 

Después de agregar elementos en la Linea rLayout que están en ScrollView.
¿Alguna solución?
Gracias.

Respuesta

9

intente lo siguiente:

android:layout_height="0dp" 
android:layout_weight="1" 

Esto le dice a su ScrollView a tomar todo el espacio restante no ocupado por los otros elementos.

+1

Estaba escribiendo la misma solución al mismo tiempo :-p usted era más rápido .. –

+0

Gracias, es trabajo :) – kakko76

1

tenía android:layout_height="wrap_content" como su altura. eso significa que la altura es tan alta como el contenido dentro de ella. si no quiere que ocupe todo el lugar, puede darle peso (como la respuesta anterior) o puede establecer su altura con dp. por ejemplo:

<LinearLayout 
android:id="@+id/linearLayout1" 
android:layout_width="fill_parent" 
android:layout_marginLeft="50dp" 
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true" 
android:layout_centerVertical="true" 
android:orientation="vertical" 
android:focusable="true" 
android:focusableInTouchMode="true" 
android:background="@drawable/linearlayoutbackground" 
android:weightSum="1.5" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight = "0.2" 
    android:text="@string/nom_des_joueurs" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:layout_marginBottom="30dp" /> 

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight = "1"> 

    <LinearLayout 
     android:id="@+id/llPlayersName" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     > 

    </LinearLayout> 

</ScrollView> 

<Button 
    android:id="@+id/okPlayersName" 
    android:layout_width="match_parent" 
    android:layout_height="0" 
    android:layout_weight = "0.3"> 
    android:text="@string/ok" 
    android:background="@drawable/backgroundbutton" 
    android:layout_marginTop="30dp" /> 

como se puede ver i dio la disposición lineal de una "suma" y el peso a todos sus hijos se les da. ¿Está claro? es lo que necesitabas?

Cuestiones relacionadas