texto studio reciclapp personalizar colombia centrar bar android android-layout android-recyclerview

android - studio - reciclapp colombia



¿Cómo centrar artículos de una vista de reciclador? (7)

Necesito centrar elementos en cada fila para que sean como en esta maqueta. He estado buscando si hay algún diseño que funcione de esa manera sin mirar. los artículos se centran en sus filas.

Así es como se ve ahora en mi código.


Haga que el width de la wrap_content reciclador sea wrap_content y el wrap_content su contenedor en center_horizontal

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/recycrer_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:paddingLeft="16dp" android:paddingRight="16dp" /> </LinearLayout>


Supongo que está utilizando LinearLayoutManager con RecyclerView para un efecto de estilo ListView . En ese caso, use un LinearLayout horizontal para cada fila, con android:gravity="center" para centrar su contenido.


Utilice gridLayoutManager = new GridLayoutManager(context,6) y anule setSpanSizeLookup .

Ejemplo:

int totalSize=list.size(); gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { int span; span = totalSize % 3; if (totalSize < 3) { return 6; } else if (span == 0 || (position <= ((totalSize - 1) - span))) { return 2; } else if (span == 1) { return 6; } else { return 3; } } });

Esto funcionará si desea mostrar 3 elementos en una fila y permanecer en el centro de la cuadrícula.

Cambie la extensión del administrador de disposición de cuadrícula según su requerimiento.


pon tu recyclerview en linearlayout en xml. y uso (tanto para recyclerview como para linearlayout)

android:layout_gravity="center"

y el ancho de recyclerview debe ser wrap_content, mientras que linearlayout debe tener math_parent y debe especificar el ancho para su row_item


puede agregar algunos diseños dinámicamente, por ejemplo:

  • el objeto adaptador puede ser un LinearLayout horizontal

1- Crea un LinearLayout en código java y personalízalo (gravedad, ...)

2- agregar algunos iconos a linearLayout

3- agrega linearLayout a tu adaptador

4- repetir 1,2,3

// : declare new horizontal linearLayout ImageView myIcons[nomOfIcons]; // : add all icons to myIcons for(int i=1; i<=nomOfIcons; i++){ linearLayout.addView(myIcons[i - 1]); if(i%numOfIconsInOneHorizontalLinearLayout==0) { results.add(linearLayout); // add linearLayout to adapter dataSet // : declare new horizontal linearLayout } } if(n%numOfIconsInOneHorizontalLinearLayout!=0) // add last linearLayout if not added in the loop results.add(linearLayout); mAdapter.notifyDataSetChanged(); // update adapter


puede usar el nuevo layoutManager de google FlexLayoutManager le dará mucho control y flexibilidad sobre el recicladorVer elementos


Tome LinearLayout en el diseño de la fila de elementos de su RecyclerView y luego dele android:layout_gravity="center" a LinearLayout .

Para cada fila de imágenes, debe tomar LinearLayout diferente.

Aquí hay un código de ejemplo:

<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="horizontal"> <ImageView android:id="@+id/image1" android:layout_width="64dp" android:layout_height="64dp" android:layout_marginRight="10dp" android:layout_weight="1" android:src="@drawable/image1" /> <ImageView android:id="@+id/image2" android:layout_width="64dp" android:layout_height="64dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_weight="1" android:src="@drawable/image2" /> <ImageView android:id="@+id/image3" android:layout_width="64dp" android:layout_height="64dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_weight="1" android:src="@drawable/image3" /> </LinearLayout>