IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Layout ou pas ?


Sujet :

Composants graphiques Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 56
    Par défaut Layout ou pas ?
    Salut.

    Je dois me lancer dans le développement d'une application mobile (nécessitant entre autre l'utilisation de code C mais c'est une autre histoire)
    Après avoir un peu essayé React Native, j'ai finalement décidé de développer mon application en natif sur Android Studio (avant de passer à la version iOS).

    J'ai essayé quelques exemples, et généré quelques projets vierge...
    Et là, j'avoue que je suis un peu dérouté par les layout.

    Je trouve ça hyper compliqué.
    Et surtout j'ai pas trop l'impression que je serai capable de produire tout le système du DrawerLayout (par exemple) si Android Studio ne l'avait pas fait à ma place.
    La modification d'un layout semble encore plus compliquée.
    J'ai juste voulu changer la couleur des 3 traits qui ouvre le NavigationView et là, mystère. je ne sais pas, ni s'il existe une variable pour ça ni si ces 3 traits sont une image vectorielle qu'on peut changer !!!

    La doc https://developer.android.com/refere...ationView.html n'aide pas des masses
    Bref...

    Alors ma question est la suivante.

    Est-ce que la plupart des développeurs utilisent les layout ?
    Est-ce que la plupart des développeurs ne les utilisent pas ?
    Ou est-ce que les deux approches sont possibles ?

    Faut-il prendre le temps de comprendre comment fonctionne les layouts (et je parlent même pas des fragments).
    Si c'est la méthode recommandée, pas de problème. je vais matter du tuto et poser des questions

    Merci.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Tout le monde utilise les layouts. L'alternative c'est de tout dessiner sur des canvas donc autant dire que faut être fou ...

    Si tu compares les layout à de l'html et du CSS c'est effectivement un peu plus compliqué à personnalisé dans certains cas, mais comparé à des trucs comme swing par exemple c'est le jour et la nuit.

    Pour la couleur de l'icone de menu c'est pas plus compliqué que du css , faut juste chercher comment faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
        <item name="spinBars">true</item>
        <item name="color">@android:color/black</item> <!-- Couleur de l'icone -->
    </style>
    Source
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 56
    Par défaut
    Ok.
    Ben ben va pour les layout alors !
    De toute façon j'en ai fait toute l’après midi hier, donc je commence a y voir pus clair.

    Déjà, merci pour ton lien, ça m'a permis d'apprendre que la fameuse icone s'appelle "hamburger icon". Fallait le savoir

    J'aurai une question concernant les attributs des balises xml des layout.
    on trouve des attributs commençant par
    app:
    android:
    tools:

    Il semble que app: fasse référence à des valeurs de ressources (se trouvant donc dans le dossier res). Là ça va.
    par contre c'est quoi la différence entre android: et tools:

    et surtout où peut-on trouver la liste de tous les attributs android: et tools: possible, histoire d'avoir une vue complète de tout ce qu'on peut modifier ?

    Ensuite j'aimerai m'attarder sur l'exemple que tu m'a donné et que j'ai essayé

    d'abord pour que ça marche j'ai du modifier ainsi le style.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        ...
        <item name="drawerArrowStyle">@style/DrawerHamburgerStyle</item>
    </style>
     
    <style name="DrawerHamburgerStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
        <item name="spinBars">true</item>
        <item name="color">@android:color/black</item> <!-- Couleur de l'icone -->
    </style>
    Donc, on modifie <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> qui est le thème en lui disant qu'on veut surcharger drawerArrowStyle
    Ce qui est étonnant c'est que la doc d'android est inexistante à ce sujet.

    Tout au plus on trouve ce lien
    https://developer.android.com/refere...werArrowToggle

    qui donne vaguement des "variables"

    DrawerArrowToggle_arrowHeadLength
    DrawerArrowToggle_arrowShaftLength
    DrawerArrowToggle_barLength
    DrawerArrowToggle_color
    DrawerArrowToggle_drawableSize
    DrawerArrowToggle_gapBetweenBars
    DrawerArrowToggle_spinBars
    DrawerArrowToggle_thickness

    qui semble indiquer qu'on peut surcharger les attributs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <style name="DrawerHamburgerStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
        <item name="arrowShaftLength">...</item>
        <item name="barLength">...</item>
        <item name="color">...</item>
        <item name="drawableSize">...</item>
        <item name="gapBetweenBars">...</item>
        <item name="spinBars">...</item>
        <item name="thickness">...</item>
    </style>
    Sauf que tout ça n'est absolument pas documenté.

    Finalement la doc c'est stackoverflow.com si t'as du bol !

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    J'aurai une question concernant les attributs des balises xml des layout.
    on trouve des attributs commençant par
    app:
    android:
    tools:

    Il semble que app: fasse référence à des valeurs de ressources (se trouvant donc dans le dossier res). Là ça va.
    par contre c'est quoi la différence entre android: et tools:
    Ce sont des namespace, pas besoin d'y porter plus d'attention que ca. Mais pour répondre à ta question :
    app : C'est tout les attribut défini dans ton application. Soit créer par toi soit via des librairie utilisée (appcompat en est un parfait exemple).
    android: Tout ce qui touche au système.
    tools : UN autre namespace, voir la doc pour explication précise.

    Tu remarquera sans doute qu'il arrive parfois de trouver certains attribut commun dans app: et android: . C'est souvent un problème de compatibilité.
    Par exemple android:showAsAction n'est disponible qu'à partir de l'API 11, mais app:showAsAction est dispo tout le temps à partir du moment ou tu inclus appcompat-v7.

    La liste des attributs est disponible pour chaque widget. Par exemple pour un TextView tu peux trouver dans la doc tous les attributs xml dispo.

    Sauf que tout ça n'est absolument pas documenté.
    La preuve que si , puisque tu as trouver la bonne documentation

    Après je te l'accorde c'est un peu light sur le sujet , mais c'est je pense une volonté de google de pas rendre la personnalisation de certains élément trop simple. Leur but est comme pour IOS d'arriver à une certaines unité dans les designs afin que l'utilisateur ne soit pas perdu à chaque application.
    La plus part du temps tu choisi un theme material clair ou foncée , tu défini tes couleurs principales et c'est fini.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Layout Updated pas de déclenchement
    Par DaMo` dans le forum Silverlight
    Réponses: 1
    Dernier message: 09/07/2010, 11h05
  2. Layout et pas d'espacement entre label
    Par pcouas dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/05/2008, 09h38
  3. Réponses: 2
    Dernier message: 25/02/2007, 23h56
  4. Réponses: 1
    Dernier message: 26/10/2006, 17h44
  5. [layout]il existe pas des layout plus simple et plus rapide?
    Par soad dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 28/11/2005, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo