I am using a RecyclerView to show a List of Items and I need to remove the default spacing between Items. I'm trying to set a RecyclerView.LayoutParams and set margins to zero on my LinearLayoutManager but didn't work!
Here is my 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);
I need help...
Adapters provide a binding from an app-specific data set to views that are displayed within a RecyclerView . Parameters. <VH extends RecyclerView.ViewHolder> A class that extends ViewHolder that will be used by the adapter.
RecyclerView is powerful when you need to customize your list or you want better animations. Those convenience methods in ListView caused a lot of trouble to people which is why RecyclerView provides a more flexible solution to them. The major change you need to make for migration is in your adapter.
just remove the cardview in your layout/cardview_recycler.xml, android puts that spacing that you don't want
<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>
everything else stays as it is
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With