J'utilise un RecyclerView pour afficher une liste d'éléments et j'ai besoin de supprimer l'espacement par défaut entre les éléments. J'essaie de définir un RecyclerView.LayoutParams et de définir des marges à zéro sur mon LinearLayoutManager mais cela n'a pas fonctionné!
Voici mon code:
layout/fragment_recycler.xml
<Android.support.v4.widget.SwipeRefreshLayout
Android:id="@+id/freshSwipeView"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/freshRecyclerView"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:scrollbars="vertical" />
</Android.support.v4.widget.SwipeRefreshLayout>
layout/cardview_recycler.xml
<Android.support.v7.widget.CardView
Android:id="@+id/card_view"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:id="@+id/content"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="horizontal">
<mypackagename.ui.view.RecyclingImageView
Android:id="@+id/avatar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scaleType="fitXY"
Android:adjustViewBounds="true"
Android:src="@drawable/img_no_avatar" />
<TextView
Android:id="@+id/username"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="center_vertical"
Android:singleLine="true"
Android:ellipsize="end"
Android:padding="@dimen/spacing"
Android:textColor="@color/black"
Android:layout_alignParentBottom="true"
Android:textSize="@dimen/text_smallest" />
</LinearLayout>
</Android.support.v7.widget.CardView>
RecyclerFragment.Java
/* Setting Layout Manager */
mLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT);
params.setMargins(0,0,0,0);
mLayoutManager.canScrollVertically();
mRecyclerView.setLayoutManager(mLayoutManager);
J'ai besoin d'aide...
il suffit de retirer la carte dans votre layout/cardview_recycler.xml , Android met cet espacement que vous ne voulez pas
<LinearLayout
Android:id="@+id/content"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="horizontal">
<mypackagename.ui.view.RecyclingImageView
Android:id="@+id/avatar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scaleType="fitXY"
Android:adjustViewBounds="true"
Android:src="@drawable/img_no_avatar" />
<TextView
Android:id="@+id/username"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="center_vertical"
Android:singleLine="true"
Android:ellipsize="end"
Android:padding="@dimen/spacing"
Android:textColor="@color/black"
Android:layout_alignParentBottom="true"
Android:textSize="@dimen/text_smallest" />
</LinearLayout>
tout le reste reste tel quel
Donnez à Android: layout_height = wrap_content au lieu de match_parent à la disposition de votre racine d’élément
<Android.support.v7.widget.CardView
Android:id="@+id/card_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
-------
-------
</Android.support.v7.widget.CardView>
Dans mon cas, le code ci-dessous a fonctionné
<Android.support.v7.widget.RecyclerView
Android:id="@+id/freshRecyclerView"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:clipToPadding="false"
Android:scrollbars="vertical" />
supprimer la ligne setVisibiilty(gone)
après avoir enlevé cela fonctionne parfaitement.