Cómo agregar Horizontal Recyclerview como un encabezado para Vertical Recyclerview?

Imagen de salida esperada Necesito una salida como esta. Ése es HorizontalRecyclerView como cabecera para VerticalRecyclerView.

Actualmente estoy usando NestedScrollView para lograr este diseño. Pero sentí que el desplazamiento no es suave.

Por favor sugiera cualquier idea. Gracias por adelantado.

Diseño:

<android.support.v4.widget.NestedScrollView android:id="@+id/nsv_my_list" android:layout_width="match_parent" android:layout_height="match_parent" android:overScrollMode="ifContentScrolls" android:visibility="gone" android:clipChildren="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="15dp"> <LinearLayout android:id="@+id/ll_continue_watching" android:layout_width="match_parent" android:layout_height="132dp" android:visibility="gone" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="29dp" android:gravity="center_vertical" android:paddingLeft="15dp" android:paddingRight="15dp"> <customview.font.TextView android:id="@+id/txt_edit_remove_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/btn_profile_edit" android:gravity="center" android:paddingTop="2dp" android:text="EDIT" android:textSize="10sp" /> <customview.font.TextView android:id="@+id/txt_continue_watchng" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_centerVertical="true" android:text="Continue watching" android:textSize="12sp" /> </RelativeLayout> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/horizontal_view_color" /> <android.support.v7.widget.RecyclerView android:id="@+id/rv_horizontal_view" android:layout_width="match_parent" android:layout_height="102dp" android:paddingBottom="15dp" android:paddingTop="15dp" /> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/horizontal_view_color" /> </LinearLayout> <android.support.v7.widget.RecyclerView android:id="@+id/rv_vertical_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> </android.support.v4.widget.NestedScrollView> 

One Solution collect form web for “Cómo agregar Horizontal Recyclerview como un encabezado para Vertical Recyclerview?”

Muy simple, su vista de reciclado "principal" tiene 2 tipos de células, la primera, que es otra vista de reciclador, y el resto son células "normales".

En el adaptador de su "principal" reciclar vista, tiene que reemplazar el método getItemViewType, algo así:

  @Override public int getItemViewType(int position) { if(postition == 0) { return 1; //Let's say that you define that 1 is the view type for the recycler view cell } else { return 2; //And 2 is going to be the "normal" cells } } 

Luego, en su método onCreateViewHolder, dependiendo del tipo de vista, debe generar y devolver el viewHolder correcto, algo así:

  @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType == 1) { View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.your_other_recyclerview_layout, parent, false); //build the viewHolder ViewHolder vh = new YourOtherRecyclerViewHolder(v); return vh; } else { View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.your_normal_cell_layout, parent, false); //build the normal viewHolder YourNormalViewHolder vh = new YourNormalViewHolder (v); return vh; } } 

Por supuesto, debe implementar 2 clases que amplía la clase ViewHolder, una para YourOtherRecyclerViewHolder y la otra para YourNormalViewHolder.

¡Espero que ayude!

  • ¿Cómo hacer que la vista de reciclador comience a agregar elementos desde el centro?
  • Eliminar elementos basados ​​en el cursor en RecyclerView
  • Desactivar eventos táctiles de RecyclerView (para evitar toques de usuario)?
  • No se puede usar getLayoutPosition () o getAdapterPosition () en RecyclerView
  • ¿Cuál es el equivalente listview.setSelection en caso de Recycler View
  • ¿Cómo configurar la altura de recyclerview de forma programática?
  • Cómo recorrer los elementos en Android RecyclerView?
  • RecyclerView muestra los datos eliminados en la lista
  • ¿Cómo obtener la Scrollposition en Recyclerview / Layoutmanager?
  • RecyclerView desplazado UP / DOWN oyente
  • Twowayview agrega automáticamente relleno al desplazarse
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.