Android comment afficher 2 listviews dans une activité, l'un après l'autre
J'ai utilisé ce code pour l'affichage 2 affichage de la liste de l'un sur l'autre.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#f00" >
</ListView>
<ListView
android:id="@+id/listView2"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#0f0" >
</ListView>
Le problème est que, ce qui provoque le 2 listviews à chaque occupent la moitié de l'écran.
Je suis l'ajout d'un en-tête pour les deux listes.
LevelAdapter adapter = new LevelAdapter(getActivity(),
R.layout.list_item, weather_data);
View header = inflater.inflate(R.layout.header2, null);
View header2 = inflater.inflate(R.layout.header, null);
lv1.addHeaderView(header);
lv2.addHeaderView(header2);
lv1.setAdapter(adapter);
lv2.setAdapter(adapter);
Je voudrais l'en-tête de la deuxième liste à apparaître après la première liste est plus. Comment dois-je faire?Comment je fais les listviews apparaissent de sorte que le deuxième commence quand le premier est plus ?
Grâce
InformationsquelleAutor Shivam Bhalla | 2013-07-17
Vous devez vous connecter pour publier un commentaire.
Utiliser Comme ceci:
Supprimer Linéaire de la mise en page. l'utilisation relative de la mise en page et à l'intérieur qu'placez vos deux liste vue comme cela.
ajouter Utility.java
Dans votre Activité:
setListViewHeightBasedOnChildren()
la vue liste affiche TOUS les points de vue, au lieu de 5 à 10 éléments à l'écran. Si votre carte contient 10k éléments, votre application se bloque avec OOM.activity_main.xml
MainActivity.java
getItemViewType(int position)
méthodesetDynamicHeight
chaque fois que l'adaptateur d'objets changent de longueur pour mettre à jour la hauteur de la listView.Vous devez utiliser
ExpandableListView
(http://developer.android.com/reference/android/widget/ExpandableListView.html). Vous disposez de deux sections au lieu de deux listviews mais ils (y compris les en-têtes) sera aligné comme vous l'avez décrit.Il n'est pas une bonne pratique d'utiliser plus d'un ListViews " dans un seul conteneur. Elle provoque de mesure et de problèmes de performances.
Le mieux est d'utiliser une seule ListView avec plusieurs types d'affichage. Dans votre cas, les types de vues pourrait être: listview1_viewtype, listview2_viewtype, listview2_header_viewtype. Pour la première ListView l'en-tête, vous pouvez utiliser juste en-tête.
lorsque les poids sont fournis hauteur doit être fournie 0dp ou wrap_content. mais vous ne le font pas. modifier votre fichier xml, comme ci-dessous. J'espère que cela fonctionne pour vous.
que par votre commentaire, je suis d'édition de mon post en fonction des besoins Solution
1- : Créer une vue de liste, avec seulement 2 ligne
1.1-: Ajouter un affichage de liste sous forme de ligne de l'enfant dans la première listview #1
1.2-: Ajouter un autre affichage de la liste en tant que deuxième ligne de l'enfant dans la première listview #1
je l'espère, par cette façon, vous pouvez atteindre le succès.
Je suis nouveau sur Android et je l'ai obtenu quelque chose de similaire (pas exactement, mais genre de solution), mais beaucoup plus FACILE, en faisant un fichier de mise en page et de mettre le nombre de vues de liste dans il et un autre XML de mise en page et l'envelopper déjà fait la mise en page dans le ScrollView.
Supposons que vous avez mise en page nommée two_listview_layout.xml définie comme
RelativeLayout n'est pas obligatoire ici, mais vous pouvez jouer avec vos exigences et les mises en page.
Maintenant faire un autre modèle dans lequel cette disposition est enveloppé dans le ScrollView. Comme le ScrollView peuvent avoir seulement 1 enfant direct, vous aurez cette disposition complète comme son enfant.
Nom de ce (ci-dessous) mise en page comme final_layout.xml
Maintenant gonfler cette final_layout.xml dans votre fragment/de l'activité et de l'utilisation de l'Id qui ont été nommées en l'two_listview_layout.xml pour accéder à la liste.
De sortie est quelque chose comme ceci: (toutes mes excuses pour la mauvaise qualité de l'enregistreur d'écran :p ) les Remorques et les Examens - les deux sont listviews ici.
Essayer avec le ScrollView et LinearLayout:
activity_main.xml
MainActivity.java
Ajoutant layout_weight a fonctionné pour moi.
Essayer avec une relative mise en page: