J'ai un recyclerView
avec un gridManagerLayout
comme ceci:Puis-je définir des largeurs de colonnes dynamiques dans GridManagerLayout dans Android?
GridLayoutManager manager = new GridLayoutManager(Main.this, 10);
manager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(manager);
Est-il possible de définir différentes largeurs à chaque colonne? J'essaye de réaliser quelque chose comme ceci:
Comme vous pouvez voir les colonnes 0, 2, 4, 6 et 8 doivent être plus petites que les autres.
J'ai essayé manager.setSpanSizeLookup(spanSizeLookup)
, mais je ne veux pas changer le spanCount
du layout manager
.
C'est ce que j'ai en ce moment
Je suis en train de la largeur de chaque support dans le constructeur en appelant itemView.getLayoutParams() width = THE_WIDTH.
Il semble que les lignes jaunes sont à leur place, je ne sais pas pourquoi les autres ont un décalage
C'est le XML pour l'image
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:layout_centerHorizontal="true"
android:layout_above="@+id/text"
android:scaleType="centerCrop"/>
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Category name"
android:layout_alignParentBottom="true"
android:gravity="center"
android:background="#7f007f"/>
</RelativeLayout>
Et c'est le xml pour la espace entre eux
<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="25dp"
android:layout_height="match_parent"
android:background="#ffff00"/>
télécharger votre deux fichiers xml aussi –