我有一个fragment
A的活动。Fragment
A在recyclerview
中托管一个列表,该列表需要一个adapter
。单击列表中的某个项目后,我想打开另一个片段,例如B,显示有关该项目的其他详细信息。
我可以通过三种方式打开片段B:
在recyclerview适配器本身中,我将在其中放置物品等。
从片段A使用适配器的回调,因为适配器具有位置,对象等所有必需的信息。
从活动中再次使用回调。如果我在活动中这样做,则必须将适配器的回调接口添加到片段A,最后添加到活动。看起来太多了。
我想知道打开片段B的最佳方法是什么。
答案 0 :(得分:1)
嘿,从适配器开始片段不是一个好习惯。因为找到片段的容器将非常复杂。因此,请始终尝试从主要活动开始该片段,该活动将是所有片段的父对象。希望它对您有所帮助。
答案 1 :(得分:0)
选项2始终是好的方法-> 2.从片段开始,A使用适配器的回调,因为适配器具有位置,对象等所有必需的信息。
“根据MVC模式,适配器始终用于与列表绑定视图。因此,适配器应始终独立于片段,因此将始终处理单一职责原则。因此,适配器对片段应无依赖性,而片段应无依赖性到适配器。当您从适配器调用片段或活动时,它将彼此之间创建一个循环依赖关系,因此直到您完成应用程序后内存才会清除。您可以从适配器调用该片段的任何回调方法,该方法将调用所需的您想要的片段。”