2010-10-29 19 views
199

Tengo muchos elementos en la pantalla y necesito usar la barra de desplazamiento para que el usuario pueda desplazarse hacia abajo. Sin embargo, el desplazamiento no está visible o no funciona. ¿Cómo es posible agregar una barra de desplazamiento a LinearLayout?¿Cómo se puede desplazar LinearLayout?

+4

posible duplicado de [Cómo hacer un LinearLayout desplazable] (http://stackoverflow.com/questions/3416689/how-to-make-a-linearlayout-scrollable) – Narkha

Respuesta

386

Wrap la disposición lineal con un <ScrollView>

See here for an example:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 
     <ScrollView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
      <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:orientation="vertical"> 
        <!-- Content here --> 
      </LinearLayout> 
     </ScrollView> 
</LinearLayout> 
+1

@DanielMagnusson Link todavía funciona aquí ... aquí hay una guía de video: http://www.youtube.com/watch?v=kNX996ZZ2CI –

+24

No te creo necesita LinearLayout exterior. –

+0

@Lawrence No, no es necesario, pero puede depender de cómo se vea el resto de la vista. –

126
<ScrollView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/scroll" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

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

</ScrollView> 
+0

Tengo un código similar pero lineal no llenará la vista :( –

-25

Se puede añadir una atrribuya en LinearLayout: android:scrollbars="vertical"

+2

esto no funcionó – Troj

+31

Sorprendido con la cantidad de downvotes –

+0

no funciona para mí –

4

Aquí es cómo lo hice por ensayo y error.

ScrollView - (la envoltura exterior).

LinearLayout (child-1). 

     LinearLayout (child-1a). 

     LinearLayout (child-1b 

Como Scrollview puede tener solo un hijo, ese elemento es un diseño lineal. Luego, todos los demás tipos de diseño se producen en el primer diseño lineal. No he intentado incluir un diseño relativo aún, pero me vuelven loco, así que esperaré hasta que regrese mi cordura.

-5

Durante el uso de Eclipse ADT: diseño gráfico -> Compuesto -> ScrollView

0
<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     tools:context=".MainActivity"> 

     <ScrollView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"`enter code here`> 

       <---------Content Here ---------------> 
      </LinearLayout> 
     </ScrollView> 
    </LinearLayout> 
0

Es necesario colocar ScrollView como el primer hijo del archivo de diseño y ahora poner su LinearLayout en su interior. Ahora, Android decidirá en función del contenido y el tamaño del dispositivo disponible si mostrar un desplazamiento o no.

Asegúrese de que linearlayout no tenga hermanos porque ScrollView no puede tener más de un hijo.

2

Esto se puede hacer utilizando la etiqueta <ScrollView>. Para ScrollView, una cosa que debe recordar es que ScrollView debe tener un hijo único.

Si desea que su diseño completo sea desplazable, agregue <ScrollView> en la parte superior. Verifica el ejemplo dado a continuación.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scroll" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
      <!-- Content here --> 
    </LinearLayout> 

</ScrollView> 

Pero si quieres alguna parte de su diseño para ser desplazable a continuación, añadir <ScrollView> dentro de esa parte. Verifica el ejemplo dado a continuación.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="400dp"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 
       <!-- Content here --> 
     </LinearLayout> 

    </ScrollView> 

</LinearLayout> 
1

es necesario utilizar el siguiente atributo y encerrarlo dentro de la disposición lineal

<LinearLayout ...> 
<scrollView ...> 

</scrollView> 
</LinearLayout> 
Cuestiones relacionadas