2010-11-30 19 views
6

J'ai un fichier xml qui a la mise en page sous forme ASCII:Faire la mise en page android listview scrollable

--------------- 
| ImageView 
-------------- 
| TextView 
-------------- 
| List... 
-------------- 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:myapp="http://schemas.android.com/apk/res/com.some.app" 
android:orientation="vertical" android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<ImageView 
android:id="@+id/MovieCover" 
android:layout_width="100dip" 
android:layout_height="100dip" 
/> 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="16sp" 
    android:padding="10dp" 
    android:id="@+id/TextHeader" 
    android:background="#000000"> 
</TextView> 
<ListView android:id="@+id/ListView02" android:layout_height="wrap_content" 
android:layout_width="fill_parent"> 
</ListView> 
</LinearLayout> 

Je vais avoir un problème d'affichage de la mise en page lorsque mon ImageView et TextView prend plus de 3/4 de l'écran. Comment est-ce que je peux faire défiler ImageView et TextView avec le ListView qui est affiché? À ce moment-là, seul le ListView doit être défilé et je veux que la mise en page entière soit défilante comme s'il s'agissait d'une seule page.

Comment puis-je faire cela?

+1

Idéalement mettre la totalité de la mise en page à l'intérieur d'un scrollview devrait fonctionner, mais les directives android dire de ne pas mettre ListView dans un ScrollView, curieux de savoir solution pour ce vote! –

Répondre

3

Vous pouvez utiliser <ScrollView> comme conteneur de mise en page

quelque chose le long de la ligne de

<ScrollView> 
    <LinearLayout> 
    // your layout here 
    </LinearLayout> 
</ScrollView> 

la raison pour laquelle nous avons besoin du LinearLayout est à l'intérieur que ScrollView ne peut avoir qu'un seul enfant direct

+2

Son ne fonctionne pas ... ListView ne fera pas défiler du tout – PCS

0

Comment à propos de mettre l'ImageView et TextView dans une mise en page et de mettre cette mise en page à l'intérieur d'un ScrollView.

1

Beurre d'utiliser deux LinearLayout avec layoutweight="1" et mettre ScrollView dans une liste image et dans d'autres

<LinearLayout android:layout_weight="1" 
     android:layout_height="fill_parent" android:layout_width="fill_parent"> 
     <ScrollView android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
      <LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent"    
           android:layout_height="fill_parent"> 

          <!-- scroll view content --> 
      </LinearLayout> 
     </ScrollView> 
    </LinearLayout> 
    <LinearLayout android:layout_weight="1" 
     android:layout_height="fill_parent" android:layout_width="fill_parent"> 
     <ListView android:id="@+id/ListView02" android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 
     </ListView> 
    </LinearLayout> 
1

ListView a la fonction addtoHeader et addtoFooter. Faites une mise en page séparée et ajoutez-la dans l'en-tête de ListView. Dans votre cas, faites une mise en page relative d'imageview et de textview et ajoutez-la à l'en-tête de listview. La page entière commencera à défiler.

+0

Cela a fonctionné. Cela devrait être la réponse acceptée –