web-dev-qa-db-fra.com

Supprimer l’espacement entre les éléments dans RecyclerView android

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...

17
fvasquezjatar

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

8
fuelusumar

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>
7
Vicky

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" />
0
Narendra

supprimer la ligne setVisibiilty(gone)

après avoir enlevé cela fonctionne parfaitement.

0
Suneel