Dans Android, l'objet TabHost restitue les activités de manière inline. Je me demande s'il y a un moyen de faire ce genre de chose, sans utiliser l'onglet-hôte. Supposons que je souhaite disposer d'une barre d'outils ou d'un tiroir coulissant qui me permette de basculer entre les activités de la même manière que le TabHost. En d'autres termes, je voudrais rendre une activité en ligne à l'intérieur d'une autre activité, un peu comme un iframe pour les activités ...Android Inline Activity
Répondre
Fondamentalement, vous devez jouer avec LocalActivityManager
et la ActvityGroup
classe:
Supposons que vous ayez votre classe DashBoard:
public class Dashboard extends ActivityGroup implements View.OnClickListener {
super.onCreate(savedInstanceState);
//Your view with the activity launcher buttons on the bottom for instance
setContentView(R.layout.frame);
@Override
public void onClick(View v) {
Intent intent = new Intent().setClassName(context,YourActivity.class);
intent.setAction(Intent.ACTION_VIEW);
LocalActivityManager localActivityManager = getLocalActivityManager();
final Window w = localActivityManager.startActivity("uniqueID", intent);
final View wd = w != null ? w.getDecorView() : null;
//the content of your activity goes here
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.tabcontent);
frameLayout.removeAllViews();
frameLayout.addView(wd);
}
}
Cela peut ne pas être en train de charger exactement Activités séparées, mais ...
lieu d'activités, vous pouvez obtenir cette fonctionnalité du point de vue de l'utilisateur en chargeant dynamiquement des mises en page dans une seule activité. De cette façon, vous pouvez avoir un curseur et mettre à jour la (les) disposition (s) à l'écran si nécessaire.
oui, mais je dois avoir une logique pour chaque vue. Supposons que j'ai comme 10 vues différentes, maintenant tout d'un coup je dois avoir une grande déclaration de commutateur qui déterminerait quelle disposition à montrer et toute la logique pour le rendre. mettre chacun dans sa propre activité serait une bonne façon de séparer les choses dans leur propre lieu logique ... fondamentalement comme le fonctionne TabHost ... sauf l'utilisation de tabhost ... :) – Ben
Haha, eh bien, ça va soyez un hack, quoi que vous fassiez, car la meilleure pratique consiste à utiliser le conteneur d'onglets fourni pour que votre application reste cohérente. Y a-t-il une raison pour laquelle vous ne pouvez pas utiliser TabHost? Ou créez-vous une alternative à TabHost dans le seul but de créer une alternative? –
Eh bien, nous voulons être en mesure de «glisser» entre les vues sans avoir à prendre l'immobilier impliqué w/l'onglet. – Ben
Aucune utilisation des activités dans les onglets n'est déconseillée en faveur des vues. Vous pouvez faire d'autres recherches ici ou sur les groupes google Android pour lire pourquoi.
Si vous devez avoir des activités distinctes, vous devez les démarrer correctement avec Intents et laisser Android gérer son cycle de vie ou faire des onglets avec une vue par onglet.
- 1. Android Activity Navigation
- 2. Android Activity setResult non persistant?
- 3. Android Inline Images dans Email
- 4. PHP/MySQL Activity (ala facebook)
- 5. Redémarrage conditionnel sur Activity onConfigurationChanged
- 6. Mysterious CPU Activity dans MS SQL 2005
- 7. Comment ajouter l'activité actuelle à Activity Stack
- 8. quelle différence ont ListActivity entre Activity?
- 9. comment obtenir Activity View dans cette activité?
- 10. fonctions inline
- 11. problème en affichage: inline et affichage: inline-block
- 12. Implémentation de l'extension inline
- 13. Trigger inline onchange javascript
- 14. WebKit plusieurs ombres inline
- 15. jqGrid inline edit problème
- 16. Django admin, inline peupler
- 17. ASP.net Inline Expression Numéro
- 18. jquery inline editor help
- 19. Fonction inline c
- 20. Initialisation bizarre Inline Array
- 21. avertissement inline supprimant
- 22. inline SVG dans Firefox
- 23. macro Inline ostringstream rechargées
- 24. fonction inline récursive
- 25. Jquery Inline Editing
- 26. ASP.NET MVC Inline Edit
- 27. Inline javascript performances
- 28. Inline automatisé pour VC++?
- 29. Comment connecter seekbar dans Activity avec player in Service?
- 30. Partage d'un menu d'options entre Activity et MapActivity
cela semble TRES prometteur, je vais donner un tourbillon et vous faire savoir comment ça se passe ... merci! – Ben