2013-03-09 1 views
0

J'apprends des Fragments Android. En ce moment j'apprends la manière de charger dynamiquement des fragments dans différents modes de configuration. En particulier, j'ai besoin de créer l'interface utilisateur qui dans les écrans BIG aura ManagementActivity avec 2 fragments (liste des éléments sur la gauche - ItemsListFragment, détails de l'élément sur la droite - DetailsFragment).Android: utilisation de fragments pour prendre en charge différentes configurations d'écran

J'ai écrit un bon prototype qui fonctionne bien sur les grands écrans: il a une activité avec deux fragments à l'intérieur. Les fragments fonctionnent bien les uns avec les autres. Pour autant que je sache, l'étape suivante consiste à créer une autre mise en page pour ManagementActivity pour une petite taille d'écran ... mais je ne comprends pas l'ensemble de l'image.

Je vois peu d'options:

Option 1.

Demandez à un autre SmallManagementActivity que ItemsListFragment contient à l'intérieur et sur le point cliquez dessus affiche une autre activité avec DetailsFragment à l'intérieur.

Cette idée est suggérée par Lars Vogel dans son didacticiel: http://www.vogella.com/articles/AndroidFragments/article.html. Cela ressemble à une idée viable, mais je ne l'aime pas beaucoup car cela nécessite une logique supplémentaire à mettre en œuvre pour décider quelle activité instancier.

Option 2.

ManagementActivity devrait avoir 2: 1 pour Layouts grands écrans, un autre pour les petits. En mode grand écran, il contiendra 2 fragments, en petit écran - 1 ItemsListFragment uniquement. Sur l'article, cliquez sur une nouvelle activité avec DetailsFragment à l'intérieur devrait popup.

L'idée est suggérée par Dianne Hackborn dans http://android-developers.blogspot.ca/2011/02/android-30-fragments-api.html

Cette option me semble mieux et bonne pour l'application de production. Mais je voudrais toujours garder tous les fragments à l'intérieur d'une activité et charger dynamiquement le fragment approprié.

Option 3.

Mon idée originale d'avoir une activité sans mise en page « vide » et charger dynamiquement fragment approprié à l'aide des opérations soutenues par FragmentManager: - au démarrage de l'activité - charge ItemsListFragment - sur un clic de l'article - load DetailsFragment - une fois que l'utilisateur a cliqué sur ou a sauvegardé les modifications - charge à nouveau ItemsListFragment.

Questions:

Quel est avantages/inconvénients de chacune de ces approches? Je pense qu'il est mauvais d'avoir trop d'activités, mais est-ce vraiment le cas?

Répondre

Questions connexes