Listview même hauteur que le contenu
J'ai utilisé personnalisé listview . Le contenu provient de dynamique je veux même listview hauteur même chose que le contenu.
J'ai utilisé wrap_content mais cela n'aide pas Si - je supprimer le scrollview ensuite son travail
Code. "Le défilement vertical ScrollView ne doit pas contenir un autre à défilement vertical widget (ListView)"
<ScrollView 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:background="@drawable/background_img"
android:scrollbars="none" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lstsemtrack"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#f2e4e4"
android:dividerHeight="1dip"
>
</ListView>
Élément de la liste
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dip"
android:scrollbars="none" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="4" >
<TextView
android:id="@+id/txtBiology"
style="@style/sem_rowtext"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dip"
android:layout_weight="1"
android:text="Biology" />
<TextView
android:id="@+id/txtClass"
style="@style/sem_rowtext"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Biology - 101" />
<TextView
android:id="@+id/txtGrade"
style="@style/sem_rowtext"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Grade" />
<TextView
android:id="@+id/txtGrade"
style="@style/sem_rowtext"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Remove" />
</LinearLayout>
</LinearLayout>
sortie comme ci-dessous je veux la même chose que le contenu pas le scrollview
- Essayez de donner le android:layout_height comme match_parent et voir si cela aide.
- Il n'a aucun rapport avec l'affichage de la liste et le contenu de celui-ci. votre mise en page est bien mis en place. C'est lié au parents de votre liste.
- double possible de Comment puis-je mettre un ListView dans un ScrollView sans qu'il s'effondre?
Vous devez vous connecter pour publier un commentaire.
Utiliser ce code
Vous ne devez pas mettre une liste à l'intérieur d'un ScrollView parce que ListView lui-même est une vue de groupe qui affiche une liste de défilement des éléments. Si vous l'utilisez à l'intérieur de scrollview il ne recevra pas de défilement des événements, car ils sont tous manipulés par le parent ScrollView. À l'aide d'une ListView à faire pas de défilement est extrêmement coûteux et va à l'encontre de l'objectif même de la ListView. Vous ne devriez PAS le faire. Il suffit d'utiliser un LinearLayout à la place.
Toutefois, si vous voulez vraiment faire cela, vous pouvez avoir un coup d'oeil à ceci: Comment puis-je mettre un ListView dans un ScrollView sans qu'il s'effondre?
ListView
de montrer toujours les mêmes données, sans défilement (à l'intérieur d'unScrollView
, aussi)! À l'aide deLinearLayout
maintenant.Dans votre parent disposition de régler la hauteur de
wrap_content
. Cela devrait fonctionner.D'autres suggestions ne fonctionnera pas, car il n'y a aucun moyen de déterminer la hauteur du contenu de la liste jusqu'à ce que après il se dessine dans l'écran (sauf si bien sûr vous avez une hauteur fixe, utilisez-les comme votre ListView en hauteur aussi).
Ce que vous pouvez faire est de mettre la liste de la hauteur APRÈS avoir tracé les éléments à l'intérieur. Vous pouvez le faire dans
onWindowFocusChanged
dans votre activité. À titre d'exemple:Utilisation Propre ListView
Créer une classe CustomListView.java et d'étendre ListView comme ça..
Ensuite l'utiliser dans xml
Comme l'a noté le Permita vous ne devriez pas avoir une ListView dans un Scrollview. Vous devez utiliser par exemple un LinearLayout à la place.
Dans certains cas, vous avez déjà fait des adaptateurs personnalisés vous souhaitez réutiliser. Dans ce cas, ces extraits de code peut être utile.
Ancien point de vue:
Nouveau point de vue:
Ancien code: (dans la boîte de dialogue/fragment/activité)
Nouveau code: (en faisant quelques "listview"-choses nous-mêmes, de réutiliser des points de vue si possible)
Mise à JOUR:
Ou tout simplement ajouter à votre carte et de l'appeler au lieu de setAdapter sur la liste de la vue et de et notifyDataUpdated sur la carte:
essayer d'emballage de votre liste grâce à un LinearLayout et définir le LinearLayout hauteur pour le wrap_content.
Utiliser android:layout_height="match_parent", il va fonctionner je pense.