Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Menu sidebar pour application Android #27

Closed
ApprentiCobaltian opened this issue Feb 5, 2015 · 8 comments
Closed

Menu sidebar pour application Android #27

ApprentiCobaltian opened this issue Feb 5, 2015 · 8 comments
Milestone

Comments

@ApprentiCobaltian
Copy link

Bonjour,

J'essaye de mettre en place un menu du même type que celui utilisé dans l'application "CodeDArmor" (appli utilisable après l'avoir mise à jour avec la version actuelle de Cobalt) mais je ne comprends pas tout...

Ce que pense avoir compris (et encore...) :

  • La page "sideMenu.html" génére le menu et le script permet d'envoyer l'événement qui permet le changement de fragment du côté natif de l'application,
  • Le fragment "SideMenuFragment.java" reçoit l'événement de la page "sideMenu.html" pour mettre à jour le fragment à afficher.

Ce que je n'ai pas compris :

  • Comment les pages html appellent la page "sideMenu.html",

  • Dans "SideMenuFragment.java", quelle est l'utilité de la fonction getpage().

    protected String getPage() {
    return "sideMenu.html";
    }

Je suis débutant en Android et donc par conséquent aussi avec Cobalt. J'ai saisi les principes du framework avec les événements pour passer du web au natif et inversement mais je suis perdu pour la réalisation du menu...

Merci pour votre aide,

JB

@ApprentiCobaltian ApprentiCobaltian changed the title Menu pour application Android Menu sidebar pour application Android Feb 5, 2015
@ApprentiCobaltian
Copy link
Author

Je viens de comprendre qu'il faut utiliser les fichiers XML du dossier "layout" et que le fragment lié au menu appel la page HTML du menu.

Actuellement le menu s'ouvre en glissant le doigt de gauche à droite mais j'aimerai aussi avoir un bouton qui permet d'ouvrir le menu. Cependant je n'arrive pas à savoir comment ouvrir le menu.

Faut-il ajouter un bouton dans les fichiers XML du layout ?
Faut-il envoyer un event depuis la page HTML pour qu'un fragment lance le menu ?

Merci d'avance,

JB

@ggendre
Copy link
Contributor

ggendre commented Feb 5, 2015

Bonjour JB,

On a prévu un plugin sidemenu pour faire ça au propre un jour. Pour l'instant il faut encore utiliser des compétences Web et Android.

Si tu veux déclencher l'apparition du sidemenu depuis la page web il faut je pense envoyer un evenement depuis le web (si le header de ta page est en web?), puis, dans la partie Android, catcher cet evenement et déclencher l'ouverture du side menu.

Pour cette dernière action ça dépendra de la librairie ou du composant que tu utilise côté android pour ton sidemenu.

Je ne suis pas un pro en Android donc je laisse @Doc1faux le soin de t'aider + s'il a des idées :)
Bon courage

Guillaume

@Doc1faux
Copy link
Contributor

Doc1faux commented Feb 9, 2015

Bonjour JB,

J'ai mis à jour l'application Code d'Armor afin de la simplifier et d'ajouter le bouton d'ouverture/fermeture du side menu.

Pour expliquer rapidement le fonctionnement du side menu.
Il est défini dans le layout "activity_list.xml" de l'activity ListActivity avec l'identifiant "drawer_layout".
Il contient un conteneur principal "fragment_container" qui héberge le fragment Cobalt courant (au démarrage, le contrôleur ListView : classe ListFragment, page eventsList.html).
Il contient également un fragment Cobalt "SideMenuFragment" qui héberge le fichier "sideMenu.html" qui génère le side menu et envoie l'évènement de clic sur un item de la liste à ce même fragment pour remplacer le fragment courant.

Maintenant, pour répondre à tes questions :
La page "sideMenu.html" est isolée, les autres pages ne l'appellent pas, tout est géré en natif.
Dans "SideMenuFragment.java", la fonction surchargée getPage permet au natif de définir la page Web chargée à la création du fragment.
Enfin, concernant le bouton, il est ajouté et géré par l'activity "ListActivity" dans les sections "LIFECYCLE" et "MENU" de mes commentaires.

@ApprentiCobaltian
Copy link
Author

Bonjour Doc1faux,

Merci pour ton aide, j'ai réussi à implémenter le menu pour mon application. Cependant il me reste quelques questions :

  • Comment lier une page HTML à un fragment ? Lorsque je créé une nouvelle page HTML, chaque sendEvent est envoyé au fragment ListFragment mais le menu lui est lié au SideMenuFragment. J'aimerai pouvoir envoyé un event d'une page HTML qui me permet de changer de fragment (simuler un changement de page - redirection - lorsque l'utilisateur s'authentifie),
  • J'aimerai pouvoir lier le menu à une image d'une page HTML (cliquer sur l'image pour ouvrir ou fermer le menu). Je voulais utiliser onOptionsItemSelected(MenuItem item) mais je ne sais pas ce qu'il faut passer en paramétre...

Merci de votre aide,

JB

@baptistejamin
Copy link
Contributor

Egalement, une app multipage, ça serait cool

@ggendre
Copy link
Contributor

ggendre commented Jan 12, 2016

Hello

Juste pour info on a release un sample SideMenu il y a quelques semaines. Plus d'infos sur le blog par ici

@ggendre
Copy link
Contributor

ggendre commented Jan 12, 2016

je clos l'issue, si il reste le moindre soucis, ne pas hésiter à la r'ouvrir !

@ApprentiCobaltian
Copy link
Author

Bonjour Guillaume,

Merci de m'avoir tenu informer. Maintenant que j'ai un peu plus de temps,
je pense me replonger sur Cobalt. Je suis curieux de voir l'évolution :)

À bientôt sur le forum sûrement :)
Le 12 janv. 2016 18:54, "Guillaume Gendre" notifications@github.com a
écrit :

je clos l'issue, si il reste le moindre soucis, ne pas hésiter à la
r'ouvrir !


Reply to this email directly or view it on GitHub
#27 (comment).

@ggendre ggendre added this to the 0.5 milestone Jan 19, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants