一个LinearLayoutManager仅适用于一个RecyclerView?

时间:2016-04-21 10:22:03

标签: android android-recyclerview linearlayoutmanager

我正在构建一个在一个片段中有三个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 个答案:

答案 0 :(得分:0)

不,它不能像那样重复使用。 在您的情况下,LayoutManagerLinearLayoutManager包含特定于与其一起使用的RecyclerView的状态。

如果三个不同的LayoutManger涉及很多设置,请考虑使用createLayoutManager()方法来调用三次。

答案 1 :(得分:-1)

关注Mattias,请执行以下操作:

    recViewTopSell.setLayoutManager(newLLM());
    recViewBrands.setLayoutManager(newLLM());
    recViewCategory.setLayoutManager(newLLM());

然后:

    private LinearLayoutManager newLLM() {
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        return linearLayoutManager;
    }