Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo centrar los elementos de una revista de reciclaje?

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

Bosquejo

  • ¿El navegador web de Android permite subir fotos tomadas de la cámara?
  • Actualizar android SDK: instalar la última plataforma para implementar nuevas API como "ShortcutManager"
  • Cómo defino launchMode en AndroidManifest.xml - Uso de PhoneGap y JQM
  • DialogFragment pantalla completa muestra relleno en los lados
  • ¿Es posible usar WebSockets o similar con una aplicación nativa de Android?
  • ACCESS_FINE_LOCATION Permisos de AndroidManifest no concedidos
  • Así es como se ve ahora en mi código. Introduzca aquí la descripción de la imagen

  • Android PopupWindow con la flecha de herramientas
  • Personalización del icono setError para TextView
  • Nexus 7 (2013) y Win 7 64 - no pueden instalar el controlador USB a pesar de comprobar muchos foros y recursos en línea
  • ¿Cómo instalar manualmente las librerías java y mantener / tmp como noexec?
  • Android: alineación vertical para multilínea EditText (área de texto)
  • Escanear la tarjeta SD de Android para nuevos archivos
  • 7 Solutions collect form web for “¿Cómo centrar los elementos de una revista de reciclaje?”

    Tome LinearLayout en el diseño de la fila de su elemento de RecyclerView y luego déle android:layout_gravity="center" a LinearLayout .

    Para cada fila de imágenes hay que tomar LinearLayout diferente.

    He aquí un ejemplo de código:

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

    He hecho de esta manera: hacer el ancho de recyclerview a wrap_content y android: layout_gravity = "center_horizontal".

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

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

    Puede añadir algunos diseños de forma dinámica, por ejemplo:

    • El objeto adaptador puede ser un LinearLayout horizontal

    1- crear un LinearLayout en código java y personalizarlo (gravedad, …)

    2- añadir algunos iconos a linearLayout

    3- Añada linearLayout a su adaptador

    4 – repetición 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 

    Ponga su recyclerview en linearlayout en xml. Y el uso (tanto para recyclerview y linearlayout)

    android:layout_gravity="center"

    Y el ancho de recyclerview debe ser wrap_content mientras que linearlayout debe tener math_parent y usted tiene que especificar el ancho de su row_item

    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 el intervalo del gestor de diseño de cuadrícula según su requisito.

    Puede usar el nuevo layoutManager de google FlexLayoutManager le dará mucho control y flexibilidad sobre los elementos de recyclerView

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.