2010-10-05 5 views
16

J'essaye de créer un ListView qui se composera de deux types d'éléments: Strings et un GridView.
I.e. mettre les deux chaînes et un GridView à l'intérieur d'un seul ListView.Ajouter un GridView à un ListView dans Android

La mise en page devrait ressembler à ceci:

  • cordes article 1.1
  • Chaîne Point 1.2
  • chaîne Point 1.3
  • Chaîne article 1.4
  • GridView Point 1 GridView Point 2
    GridView Point 3 GridView Point 4
  • Chaîne Point 2.1
  • Chaîne Point 2.2
  • Chaîne Point 2.3
  • Chaîne Point 2.4

Y a-t-il un moyen de le faire?

Comme maintenant je peux seulement montrer le premier article dans le GridView, et il agit juste comme un élément String normal dans le ListView.

Le code peut être consulté ici:

Toute aide est appréciée :)

Répondre

50

Pour répondre à ma propre question:

Basé sur this answer J'ai créé cette classe qui fonctionne très bien:

public class NonScrollableGridView extends GridView { 
    public NonScrollableGridView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     // Do not use the highest two bits of Integer.MAX_VALUE because they are 
     // reserved for the MeasureSpec mode 
     int heightSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); 
     super.onMeasure(widthMeasureSpec, heightSpec); 
     getLayoutParams().height = getMeasuredHeight(); 
    } 
} 
+8

Je vous dois un pack de six, cela fonctionne parfaitement! :) –

+0

+1 Merci l'homme! Tu as sauvé ma journée! Merci encore mon pote. – Sajmon

+0

merci beaucoup ... Vous êtes le vrai MVP – DiegoAlt

Questions connexes