Один 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;
    }
Другие вопросы по тегам