Ich stieß auf ähnliche Situation und hier ist das Modell, dem ich folgte.
Zunächst einmal Fragment Layout-Datei.
Fragment-Layout-Datei wird nicht für alle 3 Fragmente ändern (im Grunde ist es ähnlich zu Listenfragment), so habe ich eine Vorlage für die Liste Fragment erstellt.
list_fragment_template.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
Jetzt Fragment Code:
In meinem Fall alle drei Fragmente tun fast gleiche Material (Recycler Ansicht erhalten, erhalten Adapter, Recycler Ansicht Dekoration und einige weitere Operationen usw.).
Erstellt ein AbstrctFragment, das Fragment erweitert und onCreate onAttach onDestroy usw. überschrieben. Da nur Typ der Datenrecyclerview konsumiert und Adapter zum Push-Daten für reycelrview für jedes der Fragment ändern würde, erstellen Sie eine abstrakte Funktion zu GetAdapter und Templatize Daten. Jedes der drei Fragmente wird von diesem AbstractFragment abgeleitet.
... onAttach onDetach und was auch immer gemeinsame Memberfunktionen und Membervariablen für jedes Fragment kommt.
Jetzt RecyclerView Layout-Dateien. Da alle im Layout unterschiedlich sind, müssen sie natürlich anders sein.
RecyclerViewAdapters: Auch hier wäre Common-Code zu Member-Deklarationen, CreateViewHolder (hier nur Layout-Namen Änderungen Rest alle Code ist gleich) und jede andere Funktion, die alle diese Adapter teilen würde. (etwas wie das Filtern von Listenelementen).
ähnlich, wie wir für Fragmente haben, können Sie dies in AbstractRecyclerViewAdapter halten und bindViewholder etc als abstrakte Funktionen machen und 3 verschiedene recyclerAdapters haben, die von dieser AbstractRecyclerViewAdapter ableiten würde ..
Sie müssen mehr Details über Ihre App geben - sonst ist es schwer, eine Empfehlung zu geben – ligi