2010-10-29 15 views
199

Ho molti elementi sullo schermo e ho bisogno di usare la barra di scorrimento in modo che l'utente possa scorrere verso il basso. Tuttavia, lo scroll non è visibile o non funziona. Come è possibile aggiungere una barra di scorrimento ad un LinearLayout?Come si fa a far scorrere un LinearLayout?

+4

possibile duplicato di [Come fare una LinearLayout scorrevole] (http://stackoverflow.com/questions/3416689/how-to-make-a-linearlayout-scrollable) – Narkha

risposta

386

Avvolgere il layout lineare con una <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 funziona ancora qui ... ecco una guida video: http://www.youtube.com/watch?v=kNX996ZZ2CI –

+24

Non ti credo bisogno del LinearLayout esterno. –

+0

@Lawrence No, non è necessario, ma può dipendere da come appare il resto della 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

Ho un codice simile ma lineare non riempire la vista :( –

-25

È possibile aggiungere un atrribute in LinearLayout: android:scrollbars="vertical"

+2

questo non ha funzionato – Troj

+31

Sorpreso con la quantità di downvotes –

+0

non funziona per me –

4

Ecco come ho fatto per tentativi ed errori.

ScrollView - (l'involucro esterno).

LinearLayout (child-1). 

     LinearLayout (child-1a). 

     LinearLayout (child-1b 

Poiché ScrollView può avere un solo figlio, quel bambino è un layout lineare. Quindi tutti gli altri tipi di layout si verificano nel primo layout lineare. Non ho ancora provato a includere un layout relativo, ma mi fanno impazzire, quindi aspetterò fino al ritorno della mia sanità mentale.

-5

Mentre si utilizza Eclipse ADT: layout grafico -> Composite -> 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

È necessario inserire ScrollView come il primo figlio di file di layout e ora mettere il LinearLayout al suo interno. Ora, Android deciderà sulla base del contenuto e delle dimensioni del dispositivo disponibili per mostrare o meno uno scorrimento.

Assicurarsi che linearlayout non abbia fratello perché ScrollView non può avere più di un figlio.

2

L'operazione può essere eseguita utilizzando l'etichetta <ScrollView>. Per ScrollView, una cosa che devi ricordare, ScrollView deve avere un singolo figlio.

Se si desidera che il layout completo sia scorrevole, aggiungere <ScrollView> nella parte superiore. Controlla l'esempio indicato di seguito.

<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> 

Ma se si vuole una parte del layout di essere scorrevole quindi aggiungere <ScrollView> all'interno di quella parte. Controlla l'esempio indicato di seguito.

<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

è necessario utilizzare il seguente attributo e racchiuderlo all'interno del layout lineare

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

</scrollView> 
</LinearLayout> 
Problemi correlati