J'essaie de créer une mise en page avec un en-tête, une bannière en dessous, puis un couple de liste de liste sous la bannière. Je veux que l'écran complet soit défilable sauf l'en-tête. Maintenant, je sais que ListView ne fait pas défiler dans une vision de ScrollView, donc j'ai défini la hauteur de la vue de liste pour afficher tous les éléments. Le problème est que, même après ces modifications, je vois que la liste de liste est défilante de manière indépendante et l'écran complet n'est pas défilable.
` p>
<include android:id="@+id/logo_header" android:layout_width="fill_parent" android:layout_height="wrap_content" layout="@layout/screen_header" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_weight="0.8" android:background="#f2f2f2"> <include android:id="@+id/mcUser" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/complaint_reporters_details" android:layout_weight="2" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:weightSum="9" android:layout_weight="2"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1" android:layout_weight="3" android:focusableInTouchMode="false" android:paddingLeft="30dp" android:paddingRight="30dp"> <ImageView android:id="@+id/mcShowList" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:scaleType="fitXY" android:src="@drawable/list_icon" android:layout_weight="0.2" /> <TextView android:id="@+id/mcShowList_label" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:textSize="12sp" android:textColor="#929292" android:maxLines="1" android:text="List" android:layout_weight="0.8" android:layout_marginTop="-8dp" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1" android:layout_weight="3" android:gravity="center_vertical|center_horizontal" android:paddingLeft="30dp" android:paddingRight="30dp"> <ImageView android:id="@+id/mcShowMap" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:scaleType="fitXY" android:src="@drawable/map_view" android:layout_weight="0.2"/> <TextView android:id="@+id/mcShowMap_label" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:textSize="12sp" android:textColor="#929292" android:maxLines="1" android:text="Map" android:layout_weight="0.8" android:layout_marginTop="-8dp" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1" android:layout_weight="3" android:focusableInTouchMode="false" android:paddingRight="30dp" android:paddingLeft="30dp"> <ImageView android:id="@+id/mcShowAnalytics" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:scaleType="fitXY" android:src="@drawable/analytics_icon" android:layout_weight="0.2" /> <TextView android:id="@+id/mcShowAnalytics_label" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:textSize="12sp" android:textColor="#929292" android:maxLines="1" android:text="Analytics" android:layout_weight="0.8" android:layout_marginTop="-10dp" /> </LinearLayout> </LinearLayout> </LinearLayout> <RelativeLayout android:layout_weight="0.2" android:layout_width="fill_parent" android:layout_height="400dp"> <FrameLayout android:id="@+id/mcMapContainer" android:layout_width="match_parent" android:layout_height="fill_parent"/> <LinearLayout android:id="@+id/mcAnalyticsContainer" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@+id/mcChartContainer" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp"/> <GridView android:id="@+id/mcAmenityList" android:layout_height="0dp" android:layout_weight="7" android:layout_width="match_parent" android:numColumns="3"/> </LinearLayout> <LinearLayout android:id="@+id/mcListContainer" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="1"> <TextView android:text="Open Complaints" android:textColor="@color/red_btn_bg_color" android:textSize="18dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:padding="5dp" /> <ListView android:id="@+id/mcListOpen" android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:text="Closed Complaints" android:textColor="@color/red_btn_bg_color" android:textSize="18dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical|center_horizontal" android:padding="5dp" /> <ListView android:id="@+id/mcListClosed" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> </RelativeLayout> </LinearLayout> </ScrollView>
4 Réponses :
Vous pouvez essayer cela,
J'ai utilisé la méthode suivante plusieurs fois sur plusieurs applications.
J'utilise une sous-classe spéciale de listeView: puis dans votre présentation, au lieu d'utiliser "S, utilisez quelque chose comme ceci: p> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.yourcompany.appname.views.NonScrollableListView
android:id="@+id/listId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Merci Jonathan. Cela rend la liste de la liste entièrement élargie, qui est quelque chose que je faisais avant aussi, bien que ce soit une façon meilleure et plus claire de le faire. Mais même maintenant, la vision de ScrollView ne fait pas défiler pour moi et je ne peux voir que des articles qui correspondent à l'écran.
@vaibhav, vous avez également défini une hauteur de 400 dP dans votre vision relative. Devrait-il être enveloppé_content de sorte qu'il y ait quelque chose à faire défiler dans la vue de défilement? En général, les vues de la vue de défilement doivent envelopper le contenu verticalement de manière à utiliser l'espace vertical supplémentaire offert par le ScrollView.
C'est correct. J'ai réalisé qu'hier et lui a corrigé. Merci d'avoir utilisé. Malheureusement, je n'ai pas assez de points de réputation pour uppouver votre réponse.
Placez la liste de la liste sur un autre XML et incluez-la comme ceci ci-dessous P>
xxx pré> p> blockQuote>
Changer la hauteur de la vue de défilement de match_parent à envelopper_content. Parce que la vue de défilement permet uniquement de défilement si sa hauteur totale est supérieure à la hauteur de la vue parentale. I.E. Remplacez
<ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true">
J'ai fait la hauteur de la mise en page et la largeur de "Wrap_Content". Toujours faire défiler ne fonctionne pas.
Changer la hauteur des mises en page linéaire également pour envelopper_content puis l'essayer.
J'avais fait ça. Mais il suffit de réaliser que la hauteur de la relativation qui a la liste de réception, a été corrigée. Changer-le à "Fill_Parent" a résolu le problème.
voir ma réponse dans le lien suivant stackoverflow.com/questions / 30282580 / ...
S'il vous plaît voir ma réponse dans une autre question .. Ajout d'une autre vue vide