coulissante tiroir apparaissent dans toutes les activités
Je développe une application qui contient de nombreuses activités
et j'ai créé mon propre menu (je ne veux pas utiliser le construit en bouton de menu) avec le Tiroir Coulissant
comme le glissement du tiroir est au bas de l'écran et contient mon menu boutons
ce dont j'ai besoin est de faire que les coulissante tiroir à apparaître dans toutes mes activités
j'ai essayé de créer une activité et l'ensemble de l'affichage du contenu du fichier xml qui inclut le tiroir, et s'étend ensuite que l'activité dans toutes les autres activités, mais cette solution ne fonctionne pas
donc des suggestions ?
OriginalL'auteur Zak | 2011-02-07
Vous devez vous connecter pour publier un commentaire.
L'extension est de la bonne manière. Juste remplacer setContentView dans le droit chemin.
Voici l'exemple de travail, mais au lieu de tiroir, j'utilise un créé une coutume tabbar:
Définir une mise en page avec votre tiroir comme ceci:
c'est
act_layout.xml
Ce sera votre base de mise en page pour contenir tous les autres modèles du act_content cadre.
Ensuite, créez une base de l'activité de la classe, et de faire ce qui suit:
Ce que nous faisons, est fondamentalement intercepter tous les appels à setContentView(int resId), gonfler notre disposition pour tiroir à partir de xml, gonfler notre disposition pour l'activité (par reId fourni dans l'appel de méthode), les combiner entre eux que nous avons besoin, et le contentView de l'activité.
EDIT:
Après avoir créé les trucs ci-dessus, il vous suffit de procéder à écrire une application comme d'habitude, créer des mises en page (sans aucune mention d'un tiroir) créer des activités, mais au lieu de l'extension de la simple activité, étendre DrawerActivity, comme suit:
Ce qui se passe, c'est que setContentView(R. layout.some_layout) est intercepté. Votre DrawerActivity charge la mise en page que vous avez fournie à partir de xml, des charges un standart de mise en page pour votre tiroir, les combine et puis le définit comme contentView de l'activité.
La chose la plus importante est de combiner les 2 mises en page (de l'activité et celui où le tiroir est) en 1 et alors seulement avec le setContentView. Ce que je suggère, c'est de gonfler les deux mises en page à partir de xml (et dans ce cas pas de setContentView est encore appelé) les combiner en programmant la façon dont vous le souhaitez et ensuite appeler setContentView(your_combinet_view). C'est ce que j'ai fait quand j'ai changé le setContentView dans DrawerActivity. Je vais ajouter l'exemple d'une simple activité qui doit s'étendre.
j'ai fatigué de votre suggestion et je les combiner comme vous l'avez fait dans l'exemple fourni et de l'enfant de la classe que j'appelle le setContentView en passant à la racine de l'id de l'xml de ma nouvelle activité publique de la classe AlJazeera s'étend MenuSlider { Context ctx = ce ; protégé FrameLayout Mise en page; /** Appelée lorsque l'activité est d'abord créé. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R. id.idl); } }
mais j'obtiens une erreur de ressources qui ne sont pas trouvés, il semble qu'il n'accepte pas l'id de l'élément racine du fichier xml !!!!!!!!!!
Après l'avoir fait je peux voir le tiroir de navigation icône dans la barre d'action, mais ne peut pas interagir avec elle. Aucune idée pourquoi ?
OriginalL'auteur Alex Orlov
Enfin, après 3 ans, voici la solution complète à cette question importante pour qui n'a pas complètement guidée par M. Orlov réponse.
Sa méthode de fabrication d'un affichage de la hiérarchie a été complètement OK mais il y avait quelques petites erreurs qui peuvent induire en erreur les débutants développeurs.
De sorte que le 100% de travail soloution serait comme ceci :
activity_drawer.xml
DrawerActivity.java
MainActivity.java
N'oubliez pas de déclarer DrawerActivity dans le manifeste.
Espère que cela a aidé.
OriginalL'auteur The Great MA
Je sais que c'est deux ans de retard, mais pour ceux qui voudraient une réponse ici, il est. M. Orlov a une réponse appropriée, juste quelques ajustements nécessaires.
ÉGALEMENT: Si vous souhaitez que votre coulissante tiroir à apparaître sur le dessus de votre mise en page (duh!) ensuite, placez la frameLayout après le slidingDrawer avant le slidingDrawer.
OriginalL'auteur Gabe