Wrap_content en recycleview, toma altura del elemento (lista horizontal)

Tengo un RecycleView, puesto a horizontal. Ahora me gustaría que la altura coincidiera con la altura de un elemento en la vista. No conozco la altura por adelantado.

Actualmente tengo esto:

Fragmento principal:

<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="horizontal" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:layout_gravity="top" android:id="@+id/my_listview"/> </RelativeLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> 

La imagen

 <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/banner_image" android:adjustViewBounds="true" android:scaleType="fitXY" android:background="@color/dark_gray" /> 

Pero siempre ocupa toda la pantalla. Así que tengo un montón de espacio en blanco en el medio. ¿Hay una manera que podría utilizar wrap_content en los artículos de recycleview?

Esto es lo que actualmente parece: Introduzca aquí la descripción de la imagen

He colocado 2 banners en la actualidad, la primera con los grandes espacios en blanco y la imagen pequeña es la que tiene el recyclerview. El siguiente es sólo la imagen colocada en un imageview (es lo que debería ser, pero lo quiero con un recyclerview para que pueda desplazarse a través de las banderas si tengo múltiples)

4 Solutions collect form web for “Wrap_content en recycleview, toma altura del elemento (lista horizontal)”

Es probable que infle el diseño incorrectamente.

¿Usaste?

 layoutInflater.inflate(R.layout.your_layout, null); 

Intente usar en su lugar. (La otra manera ensucia con la medición)

 layoutInflater.inflate(R.layout.your_layout, parent, false); 

Ahora me gustaría que la altura coincidiera con la altura de un elemento en la vista. No conozco la altura por adelantado.

Durante el pase de diseño, LinearLayoutManager no puede predecir la altura de todas las vistas en el adaptador que aún no se han creado, antes de tiempo.

Puede measure() una vista de elemento, probablemente la primera, del adaptador y, a continuación, establecer la altura de RecycleView través del código.

Si todos los elementos pueden tener diferentes alturas, entonces tendrás que medirlas todas, lo cual no es ciertamente la forma correcta de una buena interfaz de usuario.

¿Hay una razón por la que tiene el RecycleView envuelto dentro de un RelativeLayout ? Intentaría mover la RecycleView fuera de RelativeLayout primero.

En segundo lugar, veo que su ViewPager tiene un layout_weight pero no veo un atributo android:weightSum en el diseño de los padres. ¿Hay alguna razón por la que especifique ViewPager para tener un weight pero no el RecycleView ? ¿Ha intentado fijar el tamaño del RecyleView a algún dp para comprobar si el arreglo es correcto y ViewPager está usando el atributo de weight correctamente?

En tercer lugar intentaría jugar con el Imageview . Intente tal vez envolverlo dentro de un RelativeLayout tal vez? Usted tendrá que jugar con los parámetros allí y ver si funciona para usted. Porque quieres algo personalizado no hay una respuesta directa a esta pregunta.

También enfrenté el mismo problema y quise ver dos imágenes en dos columnas con el mismo tamaño en RecyclerView y podría solucionar el problema usando código abajo. Por favor, pruebe esto.

 // inner class to hold a reference to each item of RecyclerView public static class ViewHolder extends RecyclerView.ViewHolder { public ImageView imgViewIcon; public ViewHolder(View itemLayoutView) { super(itemLayoutView); DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon); int colSpan = 2; imgViewIcon.getLayoutParams().height = (int) (displayMetrics.widthPixels / colSpan); imgViewIcon.getLayoutParams().width = (int) (displayMetrics.widthPixels / colSpan); } } 
  • Recyclerviews en ViewPager
  • Firebase UI RecyclerView onClick
  • La fila de RecyclerView está barajando y cambiando Imágenes: android
  • Haga clic en un elemento de la lista RecyclerView
  • RecyclerView no se actualiza después de NotifyDataSetChanged (), el contenido aparece después de encender y apagar la pantalla
  • Cómo animar el cambio de un gestor de diseño de la vista de reciclador
  • Android 5.0 (Lollipop) CheckedTextView presione destacar problemas
  • La forma más sencilla de mostrar Cuerdas con iconos en un RecyclerView
  • Cómo permanecer en una posición de desplazamiento en RecyclerView después de añadir elementos en su primer índice y llamar a notificydatasetchange
  • Lista 2D con RecyclerView en HorizontalScrollView
  • RecyclerView desplazamiento laggy
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.