Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 一个LinearLayoutManager仅适用于一个RecyclerView?_Android_Android Recyclerview_Linearlayoutmanager - Fatal编程技术网

Android 一个LinearLayoutManager仅适用于一个RecyclerView?

Android 一个LinearLayoutManager仅适用于一个RecyclerView?,android,android-recyclerview,linearlayoutmanager,Android,Android Recyclerview,Linearlayoutmanager,我正在构建一个应用程序,在一个片段中包含三个RecyclerView,以显示项目的水平列表。我创建了一个LinearLayoutManager对象,并将其设置为所有三个RecyclerView。但它使应用程序崩溃,说一个LinearLayoutManager只能连接到一个RecyclerView。尽管我需要相同的属性,但为什么我不能连接到所有。 代码是 LinearLayoutManager llm = new LinearLayoutManager(getActivity());

我正在构建一个应用程序,在一个片段中包含三个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);

不,它不能像那样重复使用。 在您的案例中,
LayoutManager
LinearLayoutManager
包含特定于它所使用的RecyclerView的状态


如果有三个不同的LANDEMADSER涉及到很多设置,请考虑一个<代码> CurtLayayOutMaulter()/Cuth>方法来调用三次。

< P>下面的Matthas回答如下:

    recViewTopSell.setLayoutManager(newLLM());
    recViewBrands.setLayoutManager(newLLM());
    recViewCategory.setLayoutManager(newLLM());
然后:

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

不能将同一布局管理器附加到多个回收器视图。为什么?我在问为什么我不能附加。它只是一个具有属性的对象,我希望其他RecyclerView使用相同的属性对象。因此,为什么我必须让其他objectshow使用createLayoutManager(),这将是您自己的方法创建和设置LinearLayoutManager的新实例我知道这是可以做到的,但为什么我要实例化LinearLayoutManager的三个对象。因为在回收旧视图时,它可以访问Recycler实例