从适配器启动片段是一种好习惯吗?

时间:2019-04-02 05:49:20

标签: android android-fragments android-recyclerview

我有一个fragment A的活动。Fragment A在recyclerview中托管一个列表,该列表需要一个adapter。单击列表中的某个项目后,我想打开另一个片段,例如B,显示有关该项目的其他详细信息。 我可以通过三种方式打开片段B:

  1. 在recyclerview适配器本身中,我将在其中放置物品等。

  2. 从片段A使用适配器的回调,因为适配器具有位置,对象等所有必需的信息。

  3. 从活动中再次使用回调。如果我在活动中这样做,则必须将适配器的回调接口添加到片段A,最后添加到活动。看起来太多了。

我想知道打开片段B的最佳方法是什么。

2 个答案:

答案 0 :(得分:1)

嘿,从适配器开始片段不是一个好习惯。因为找到片段的容器将非常复杂。因此,请始终尝试从主要活动开始该片段,该活动将是所有片段的父对象。希望它对您有所帮助。

答案 1 :(得分:0)

选项2始终是好的方法->        2.从片段开始,A使用适配器的回调,因为适配器具有位置,对象等所有必需的信息。

“根据MVC模式,适配器始终用于与列表绑定视图。因此,适配器应始终独立于片段,因此将始终处理单一职责原则。因此,适配器对片段应无依赖性,而片段应无依赖性到适配器。当您从适配器调用片段或活动时,它将彼此之间创建一个循环依赖关系,因此直到您完成应用程序后内存才会清除。您可以从适配器调用该片段的任何回调方法,该方法将调用所需的您想要的片段。”