Ao trabalhar com fragmentos, uso uma classe composta por métodos estáticos que definem ações em fragmentos. Para qualquer projeto, posso ter uma classe chamada FragmentActions
, que contém métodos semelhantes ao seguinte:
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();
}
Normalmente, terei um método por tela de aplicativo. Faço algo assim quando trabalho com pequenos bancos de dados locais (geralmente SQLite), então apliquei-o a fragmentos, que parecem ter um fluxo de trabalho semelhante; Eu não sou casado com isso, no entanto.
Como você organizou seus aplicativos para interagir com a API Fragments e quais padrões de design (se houver) você acha que se aplicam?
design-patterns
android
Anthony Naddeo
fonte
fonte
Respostas:
O padrão aceito é ter um método de fábrica dentro da sua classe de fragmento personalizada (normalmente chamada newInstance (), mas ei a opção do revendedor). Portanto, sua classe de fragmento deve se parecer com isso:
Então, quando você cria um fragmento e o adiciona ao backstack, em vez de dizer:
Fragmento MyFragment = novo MyFragment ();
Você pode usar o método de fábrica em vez da palavra-chave 'nova'.
fonte