Java.lang.IllegalStateException: RecyclerView no tiene LayoutManager en Fragmento

Yo estaba en el proceso de cambiar una actividad en un fragmento y obtuvo el siguiente error tan pronto como infle el RecyclerView.

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ----> View rootView = inflater.inflate(R.layout.layout_containing_recyclerview, container, false); 

Java.lang.IllegalStateException: RecyclerView no tiene LayoutManager

Antes de cambiar mi Actividad a un Fragmento el inflado fue muy bien.

Algunas investigaciones adicionales mostraron que eliminar todos los elementos de mi hijo del diseño de reciclaje ayudó a resolver el problema. Sin embargo, no entiendo por qué eso cambiaría nada y por qué funcionó trabajar con una actividad antes.

TRABAJOS

 <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:scrollbars="vertical" > </android.support.v7.widget.RecyclerView> 

NO FUNCIONA

 <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/my_recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:scrollbars="vertical" > <View android:id="@+id/randomview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </android.support.v7.widget.RecyclerView> 

¿Algo que me falta aquí?

5 Solutions collect form web for “Java.lang.IllegalStateException: RecyclerView no tiene LayoutManager en Fragmento”

Esta pregunta es bastante antigua, pero para el beneficio de las personas que siguen enfrentando este problema, pensé que iba a dejar una respuesta. Estoy aprendiendo el desarrollo de Android y este tema fue frustrante. Más tarde descubrí que no se supone que debas añadir ninguna vista o ver grupos bajo RecyclerView . El diseño que desea que aparezca en el RecyclerView debe definirse por separado en un archivo de recursos independiente.

Entonces, en la implementación del adaptador (la que extiende RecyclerView.Adapter<> , en el método public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) cuando se infla el diseño de la vista (esto está inflando el diseño de cada elemento del reciclador Vista), puede especificar el diseño separado anterior que ha creado Android a continuación, infla este diseño para cada elemento que debe agregarse a la vista de reciclador.

Este artículo me ayudó a ver esto claramente.

Acabé de inflar las vistas después de esto:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_catalog_viewer, container, false); recyclerView = (RecyclerView)rootView.findViewById(R.id.my_recycler_view); getLayoutInflater(savedInstanceState).inflate(R.layout.catalog_child, container); return rootView; } 

Tuve el mismo problema cuando traté de usar android-parallax-recycleview .

La solución era simple, puede crear manualmente el administrador del gestor de diseño.

Extracto de código de ejemplo-paralaxrecycler :

 LinearLayoutManager manager = new LinearLayoutManager(this); manager.setOrientation(LinearLayoutManager.VERTICAL); myRecycler.setLayoutManager(manager); 

RecyclerView es un ViewGroup que requiere LayoutManager que hará el diseño de sus hijos. En su caso, RecyclerView necesita que la vista secundaria se pase a LayoutManager , pero no estoy seguro si es posible pasar la referencia xml de View a LayoutManager .

La excepción de puntero nulo aún si lo inicializo en onCreateView .

Agregue programatically.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/llContainer" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-- <android.support.v7.widget.RecyclerView android:id="@+id/rvPromotions" android:layout_width="match_parent" android:layout_height="match_parent" /> --> </LinearLayout> public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ... // create recyclerview ... LinearLayout llContainer = (LinearLayout) v.findViewById(R.id.llContainer); llContainer.addView(recyclerView); return v; } 
  • RecyclerVista el espacio entre los elementos que se expanden al desplazarse
  • Cómo recurrir completamente a SortedList de RecyclerView
  • ScrollBy no funciona correctamente en recyclerview anidado
  • RecyclerView GridLayoutManager con el encabezado de ancho completo
  • Youtube Video no se muestra en RecyclerView
  • Agregar dinámicamente vistas a un recycleview.viewholder
  • Almacenamiento de gifs en fresco
  • Recycleview en el conjunto de coordenadas
  • Uso de CardView y RecyclerView en mis archivos de diseño genera una excepción
  • "RecyclerView: No hay adaptador conectado; Omitir el diseño "para recyclerview en el fragmento
  • RecyclerView está cortando el último elemento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.