Один LinearLayoutManager предназначен только для одного RecyclerView?
Я строю приложение с тремя RecyclerView в одном фрагменте, чтобы показать горизонтальный список элементов. я создал объект LinearLayoutManager и установил для него все три RecyclerView . но приложение аварийно завершает работу, говоря, что один LinearLayoutManager может быть подключен только к одному RecyclerView . Почему я не могу подключиться ко всем, хотя мне требуются те же свойства. код..
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
llm.setOrientation(LinearLayoutManager.HORIZONTAL);
recViewTopSell.setLayoutManager(llm);
recViewBrands.setLayoutManager(llm);
recViewCategory.setLayoutManager(llm);
ошибка в
recViewBrands.setLayoutManager(llm);
recViewCategory.setLayoutManager(llm);
2 ответа
Нет, это не может быть использовано так. LayoutManager
, LinearLayoutManager
в вашем случае содержит состояние, специфичное для RecyclerView, с которым оно используется.
Если для трех разных LayoutMangers требуется много настроек, рассмотрите createLayoutManager()
метод вызывать три раза вместо.
Следующий ответ Маттиаса сделать это:
recViewTopSell.setLayoutManager(newLLM());
recViewBrands.setLayoutManager(newLLM());
recViewCategory.setLayoutManager(newLLM());
а потом:
private LinearLayoutManager newLLM() {
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
return linearLayoutManager;
}