Lorsque je travaille avec des fragments, j'utilise une classe composée de méthodes statiques qui définissent les actions sur les fragments. Pour tout projet donné, je pourrais avoir une classe appelée FragmentActions
, qui contient des méthodes similaires à ce qui suit:
public static void showDeviceFragment(FragmentManager man){
String tag = AllDevicesFragment.getFragmentTag();
AllDevicesFragment fragment = (AllDevicesFragment)man.findFragmentByTag(tag);
if(fragment == null){
fragment = new AllDevicesFragment();
}
FragmentTransaction t = man.beginTransaction();
t.add(R.id.main_frame, fragment, tag);
t.commit();
}
J'ai généralement une méthode par écran d'application. Je fais quelque chose comme ça quand je travaille avec de petites bases de données locales (généralement SQLite) donc je l'ai appliqué à des fragments, qui semblent avoir un flux de travail similaire; Mais je ne suis pas mariée avec ça.
Comment avez-vous organisé vos applications pour interfacer avec l'API Fragments, et quels modèles de conception (le cas échéant) pensez-vous appliquer pour cela?
design-patterns
android
Anthony Naddeo
la source
la source
Réponses:
Le modèle accepté est d'avoir une méthode d'usine dans votre classe de fragments personnalisée (généralement appelée newInstance () mais bon choix du revendeur). Votre classe de fragment devrait donc ressembler à ceci:
Ensuite, lorsque vous créez un fragment et l'ajoutez au backstack, au lieu de dire:
Fragment MyFragment = nouveau MyFragment ();
Vous pouvez utiliser la méthode d'usine au lieu du mot-clé «nouveau».
la source