studio staggeredgridlayoutmanager recyclerview implement ejemplo cardview android android-recyclerview gridlayoutmanager

android - staggeredgridlayoutmanager - Cómo centrar los elementos de RecyclerView horizontalmente con GridLayoutManager vertical



recyclerview android studio ejemplo (1)

Tengo un recyclerview vertical utilizando un gridlayoutmanager. Quiero que cada columna esté centrada, pero las columnas comienzan completamente a la izquierda. En la siguiente imagen puedes ver de lo que estoy hablando. Utilicé el esquema de color feo para ilustrar las columnas y el fondo. El verde es el fondo de cada elemento en el recyclerview, el rojo es el fondo del recyclerview:

http://imgur.com/a/J3HtF

Lo estoy configurando con:

mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));

Aquí está el column_item.xml:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="120dp" android:layout_height="180dp" android:orientation="vertical" android:padding="4dp"> <ImageView android:id="@+id/movie_column_photo" android:layout_width="80dp" android:layout_height="120dp"/> <TextView android:id="@+id/movie_column_title" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>

Aquí está el recyclerview xml:

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.RecyclerView android:id="@+id/company_details_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical"> </android.support.v7.widget.RecyclerView> </LinearLayout>


Intente dejar que el elemento de la columna llene el ancho de la columna mientras centra todo dentro:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="180dp" android:orientation="vertical" android:padding="4dp"> <ImageView android:id="@+id/movie_column_photo" android:layout_width="80dp" android:layout_height="120dp" android:layout_gravity="center_horizontal"/> <TextView android:id="@+id/movie_column_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center"/> </LinearLayout>