Android 2.2 i.e API niveau 8 a tabStripEnabled = "true" pour TabWidget comment faire la même chose dans les anciennes versions d'Android?tabStripEnabled pour TabWidget dans les anciennes API
Répondre
private void SetupTabs(TabHost tabHost) {
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0);
TabWidget tw = (TabWidget) ll.getChildAt(0);
Field mBottomLeftStrip;
Field mBottomRightStrip;
try {
mBottomLeftStrip = tw.getClass().getDeclaredField("mBottomLeftStrip");
mBottomRightStrip = tw.getClass().getDeclaredField("mBottomRightStrip");
if (!mBottomLeftStrip.isAccessible()) {
mBottomLeftStrip.setAccessible(true);
}
if (!mBottomRightStrip.isAccessible()) {
mBottomRightStrip.setAccessible(true);
}
mBottomLeftStrip.set(tw, getResources().getDrawable(R.drawable.blank));
mBottomRightStrip.set(tw, getResources().getDrawable(R.drawable.blank));// blank is the name of the image in drawable folder
}
catch (java.lang.NoSuchFieldException e) {
// possibly 2.2
try {
Method stripEnabled = tw.getClass().getDeclaredMethod("setStripEnabled", boolean.class);
stripEnabled.invoke(tw, false);
}
catch (Exception e1) {
e1.printStackTrace();
}
}
catch (Exception e) {}
}
Merci beaucoup!!!! – Eby
Cela n'a pas fonctionné pour moi. Je l'ai essayé à la fois sur un émulateur 2.1 et 2.2. Y at-il autre chose que je devrais considérer en utilisant ce hack? Il a correctement exécuté le code basé sur le SDK actuel, mais la bordure inférieure pour le TabWidget est restée. – dannyroa
Cela a fonctionné parfaitement, certaines choses à noter, créer une image transparente et nommez-le vide. J'ai fait un léger changement en commentant: LinearLayout ll = (LinearLayout) tabHost.getChildAt (0); TabWidget tw = (TabWidget) ll.getChildAt (0); et de le remplacer par TabWidget tw = tabHost.getTabWidget(); – Fred
je l'ai fait alors:
try {
Method setStripEnabled = tabWidget.getClass().getDeclaredMethod(
"setStripEnabled", boolean.class);
setStripEnabled.invoke(tabWidget, true);
Method setLeftStripDrawable = tabWidget.getClass()
.getDeclaredMethod("setLeftStripDrawable", int.class);
setLeftStripDrawable.invoke(tabWidget, R.drawable.tab_line);
Method setRightStripDrawable = tabWidget.getClass()
.getDeclaredMethod("setRightStripDrawable", int.class);
setRightStripDrawable.invoke(tabWidget, R.drawable.tab_line);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
- 1. Personnalisation de TabWidget dans SDK 1.5, API 3
- 2. style personnalisé pour TabWidget Android
- 3. TabWidget Height
- 4. Couleur TabWidget
- 5. Tabwidget Android
- 6. Comment identifier les anciennes pages dans MediaWiki
- 7. comment ajouter parent align pour l'onglet TabWidget?
- 8. Position absolue Problèmes dans les anciennes IE
- 9. Android TabWidget dans le thème Lumière
- 10. GridView affichant les anciennes données
- 11. Mise en page dans TabHost et TabWidget
- 12. Erreur Android avec TabActivity/TabWidget
- 13. MPMoviePlayerViewController pour les anciennes versions de l'iPhone SDK
- 14. Retrait sur les anciennes versions de l'API pour permettre des fonctionnalités limitées sur les anciennes versions du système d'exploitation
- 15. Que utiliser pour les anciennes méthodes NHibernate.Linq avec Nhibernate 3?
- 16. Comment effacer les anciennes données de logcat?
- 17. Préserver les anciennes données modifiées par l'utilisateur
- 18. Les anciennes références ne meurent jamais
- 19. Comment déboguer les anciennes versions du logiciel?
- 20. android: orientation = "vertical" ne fonctionne pas pour TabWidget
- 21. Subversion: Comment trouver les anciennes révisions?
- 22. La méthode JNI renvoie les anciennes données
- 23. Contrôles ActiveX avec les anciennes versions Delphi
- 24. Ignorer les anciennes requêtes ajax asynchrones multiples
- 25. Rechargement UITableView conserve les anciennes données
- 26. Gestion des nouvelles fonctionnalités de bibliothèque dans les anciennes applications
- 27. Archive construit dans hudson, Enregistrer les anciennes constructions
- 28. Afficher les anciennes données inactives dans la liste déroulante
- 29. étendue par défaut dans les anciennes versions de rails
- 30. Débarrassez-vous de la ligne sous TabWidget
j'avais les onglets en bas de l'écran, donc je l'ai fait comme ci-dessous ... je mets android: layout_marginBottom = "- 10dip" déplacer le bottomStrip hors de l'écran mais que vous voulez savoir la manière exacte de le faire ... grâce –
amithgc