57 votes

Android hétérogène gridview comme pinterest?

Est-il possible de créer pinterest comme la mise en page sur Android à l'aide de GridView? Je veux créer une galerie d'image à l'aide de GridView mais je ne suis pas sûr si c'est la bonne solution. Je ne veux pas créer trois LinearLayouts (je pense que cette solution n'est pas bonne: Pinterest style listview ou gridview dans android)

Toutes les idées ;)?

enter image description here

25voto

vladexologija Points 1644

J'ai joué avec ce également (utilisé LinearLayout), mais à la fin j'ai eu beaucoup de problèmes avec la consommation de mémoire (surtout quand j'ai dû recharger les éléments). J'ai réglé le simple solution qui utilise deux synchronisé ListViews. De cette façon, je peux exploiter interne de mise en cache qui aide beaucoup. Pour ce faire, j'ai dû utiliser OnTouchListener et OnScrollListener qui synchroniser les listes. Voici un exemple:

https://github.com/vladexologija/PinterestListView

enter image description here

22voto

MAC Points 8956

Créer la mise en page comme suivre

<ScrollView...>
<LinearLayout....
   android:id="@+id/linear1"
   orientation="horizontal">

   <LinearLayout....
     android:id="@+id/linear2"
     android:layout_weight="0.33"
     orientation="vertical">

   <LinearLayout....
     android:id="@+id/linear3"
     android:layout_weight="0.33"
     orientation="vertical">

   <LinearLayout....
     android:layout_weight="0.33"
     orientation="vertical">

</LinearLayout>
</ScrollView>

Maintenant, ajoutez votre ImageView dynamiquement dans des mises en page

linear1 = (LinearLayout) findViewById(R.id.linear1);
linear2 = (LinearLayout) findViewById(R.id.linear2);
linear3 = (LinearLayout) findViewById(R.id.linear3);

for(int i=0;i<n;i++)
{
   ImageView iv = new ImageView(this);
   iv.setImageResource(R.id.icon);

   int j = count % 3;  <---- 
   if(j==0)
       linear1.addView(iv);
   else if(j==1)
       linear2.addView(iv);
   else
       linear3.addView(iv); 
}

sortie:

enter image description here

21voto

6voto

yanchenko Points 24142

Autonome aide pour la synchronisation du défilement de 2 ListViews: https://gist.github.com/yanchenko/6179793

3voto

emerix Points 501

Je suis à l'aide de cette librairie: https://github.com/huewu/PinterestLikeAdapterView.

Il fonctionne assez bien. Le seul problème que j'ai, c'est que l' setOnItemClickListener et setOnItemLongClickListener sont un peu buggé j'ai donc mis les écouteurs directement sur la convertView.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X