¿Cómo hacer que RecyclerView recicle dentro de NestedScrollView?

Traté de poner varias vistas, incluyendo RecyclerView , en un NestedScrollView . Utilicé setNestedScrollingEnabled(false) y parecía agradable para los conjuntos de datos pequeños, pero comenzó a ser laggy para los más grandes.

Después de pasar algún tiempo al registrar el método onCreateViewHolder() , entendí que la vista de reciclador los crea a la vez como el antiguo ListView . Intenté encontrar razones de tal comportamiento en los documentos de RecyclerView , pero lo encontré en la descripción de ScrollView :

Nunca debe utilizar un ScrollView con un ListView, porque ListView se encarga de su propio desplazamiento vertical. Lo que es más importante, al hacer esto, derrota todas las optimizaciones importantes de ListView para tratar listas grandes, ya que efectivamente obliga a ListView a mostrar toda su lista de elementos para llenar el contenedor infinito proporcionado por ScrollView.

Esperaba que NestedScrollView resolvería el problema, pero parece que no lo había hecho.

¿Hay alguna manera, por ejemplo, de usar algún LayoutManager personalizado para usar RecyclerView con sus optimizaciones de reciclaje de vistas?

Ps Por supuesto, conozco el método getItemViewType(int pos) y la posibilidad de añadir encabezados y pies de página personalizados usando esta técnica, pero parece una solución fea para mí. Y sí, lo estoy utilizando en este momento, porque es mejor tener código que es más difícil de mantener que un problema de rendimiento tan grande.

Necesita cambiar el diseño como a continuación, Está utilizando el NestedScrollView que necesita agregar la propiedad android:nestedScrollingEnabled dentro del RecyclerView

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:card_view="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.widget.NestedScrollView android:id="@+id/YOUR_NEESTED_SCROLLVIEW" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/YOUR_RECYCLVIEW" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:nestedScrollingEnabled="false" /> </android.support.v4.widget.NestedScrollView> </LinearLayout> 
  • ¿Canvas.getClipBounds asigna un objeto Rect?
  • Proguard con OrmLite en Android
  • ¿Cómo puedo activar adecuadamente ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS?
  • Evitar que Proguard elimine elementos estirables específicos
  • Cómo utilizar -assumenosideeffects clase android.util.Log en mi aplicación
  • Mi codificador JNI JPEG para Android es muy lento
  • Picasso "Cambiar tamaño y centerCrop" o ImageView "centerCrop"?
  • Autocompletar super rápido usando la búsqueda binaria en el archivo clasificado (300000 líneas)
  • Ajustes de optimización de Proguard: Habilitar la combinación de clases, los modelos y el campo / * en versiones modernas de API y Proguard
  • Simple particle system en Android usando OpenGL ES 1.0
  • Optimizaciones de Scrollview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.