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