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

Android Discussion :

Création d'un Drawer personnalisé


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 78
    Points : 46
    Points
    46
    Par défaut Création d'un Drawer personnalisé
    Bonjour

    J'aimerai ajouter à mon application un drawer dans lequel on trouverait un EditText qui me permetterait de faire une recherche filtrée sur la gridView d'image qui constitue mon application.

    Pour le moment j'aimerai juste que mon drawer + sont EditText soit visible à l'écran. Car en effet actuellement j'ai l'impression que le drawer est pris en compte mais ne s'affiche pas. Je m'explique lorsque je slide avec mon doigt de gauche à droite, l'écran s'assombrit comme si le drawer apparaissait, je n'ai plus d'intéraction possible avec ma gridView, mais rien ne s'affiche, l'écran est juste plus sombre. Lorsque je retouche une fois l'écran, il redevient claire je peu alors interagir avec ma gridView, comme si le drawer était parti.

    Voici mon code :

    * activity_girdView.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <android.support.v4.widget.DrawerLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
     
        <!-- The main content view -->
        <FrameLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
     
        <!-- The navigation drawer -->
    	<LinearLayout
    	    android:id="@+id/linearlayout"
    	    android:layout_height="wrap_content"
    	    android:layout_width="240dp"
    	    android:orientation="vertical"
    	    android:layout_gravity="start" >
    	    <EditText
    	        android:id="@+id/EditText01"
    	        android:layout_width="match_parent"
    	        android:layout_height="wrap_content"
    	        android:hint="Search" >
    	    </EditText>
    	    <ListView android:id="@+id/left_drawer_list"
    	        android:layout_width="match_parent"
    	        android:layout_height="wrap_content"
    	        android:choiceMode="singleChoice"
    	        android:divider="@android:color/transparent"
    	        android:dividerHeight="0dp"
    	        android:background="#111"/>
    	</LinearLayout>
     
        <!-- The GridView to display picture s preview  -->
        <GridView xmlns:android="http://schemas.android.com/apk/res/android"
    	    android:id="@+id/grid_view"
    	    android:layout_width="fill_parent"
    	    android:layout_height="fill_parent"
    	    android:numColumns="auto_fit"
    	    android:gravity="center"
    	    android:stretchMode="columnWidth"
    	    android:background="#000000"> 
    	</GridView>
    </android.support.v4.widget.DrawerLayout>

    * GridViewActivity.java (une partie) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    public class GridViewActivity extends Activity {
     
        static final String url = "http:/url/service_json.php";	
     
        private GridViewImageAdapter adapter;
        private GridView gridView;
     
        private DrawerLayout drawerLayout;
        private ListView drawerList;
        private LinearLayout linearLayout;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_gridview);        
     
            final JsonDownloaderTask task = new JsonDownloaderTask(this);
            task.execute(url);
     
            gridView = (GridView) findViewById(R.id.grid_view);
     
            drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawerList = (ListView) findViewById(R.id.left_drawer_list);
            linearLayout = (LinearLayout) findViewById(R.id.linearlayout);
     
            // L'adapter pour ma gridView est initialisé à la fin de mon opération 
            // asynchrone (grâce à ma classe JsonDowloaderTask)
            // tout fonctionne très bien sauf l'affichage de mon drawer.
        }


    Merci d'avance pour tout aide que vous pourrez me fournir.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Points : 47
    Points
    47
    Par défaut
    Je n'ai utilisé le drawerlayout qu'une seule fois mais il me semblait que celui-ci n'était composé que de deux éléments dans son layout (généralement framelayout pour le contenu et une listview pour le menu) hors le tiens en dispose de trois.
    maintenant je dis peut être des bêtises

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Merci pour la réponse.

    Je pensais qu'on pouvait customiser un layout de cette façon. Car je ne vois pas comment mettre mon EditText sinon.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Points : 47
    Points
    47
    Par défaut
    Je me trompe peut être as-tu essayer sans ton gridview si sa fonctionnait ?

    Sinon il est peut être possible de le faire mais j'ai du mal à voir ce que tu veux faire , un dessin ou une explication détaillée serait la bienvenue.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    A la base j'ai ma gridView avec un ensemble d'image qui sont affichées dedans télécharger via un service php en json et donc affiché sous forme de grille
    Lorsque je "clique" sur une image ça m'amène sur une autre acticity ou les images sont affichées en fullscreen et je peux slider entre elles et revenir si je le souhaite sur la gridView principal
    avec les images en plus petits.

    Ca c'est la base de mon application.

    j'aimerai maintenant ajouter un drawer avec un EditText à l'intérieur qui va me permettre de filtrer l'affichage des images sur ma gridView. Chacune de mes objects images disposent d'un attribut
    tags qui décrivent l'image. Par exemple si dans mon EditText j'écrit "animal" toute les images avec animal en tag vont s'afficher, ça va agir comme un filtre.

    Pour faire mon drawer j'ai crus comprendre qu'il fallait envelopper mon activité principal qui comprend ma gridView via les balises "<android.support.v4.widget.DrawerLayout>". C'est pour cela que j'ai essayé de segmenter mon activity_gridview.xml en 3 parties avec comme enveloppe le DrawerLayout :
    - le <FrameLayout qui doit toujours etre disposé en premier d'après ce que j'ai compris
    - le LinearLayout qui constitue mon drawer (la forme, ce qu'il va contenir, c'est comme ça que je le vois mais je peux me tromper)
    - Et ma gridView qui est mon affichage de "base" de mon application.

    Si je ne suis pas assez claire n'hésitez pas à me le faire signaler j'essaierai de mieux expliquer.
    C'est une application personnelle, ma première, que je fais pour monter en compétence et en apprendre plus sur le développement android.

    Merci encore.

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Le slidingdrawer est déprécié et ne fait plus partie des guidelines de design.

    Pour ce que tu veux faire , la bonne façon de procéder serait plutôt de passer par l'actionbar et la fonctionnalité de recherche ou ajouter un menu dropdown qui es fait pour ce genre de problématique.

    Le Navigation drawer est quant à lui (comme son nom l'indique) fait pour naviguer dans l'appli.

    Il est important d'essayer de respecter les "standard" de design pour ne pas perdre l'utilisateur.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Merci Grunk pour ce recadrage je vais donc plutôt diriger mes recherches vers l'action bar.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. création d'un menu personnalisé
    Par alexkickstand dans le forum IHM
    Réponses: 3
    Dernier message: 24/09/2007, 21h42
  2. [C#] Création d'un bouton personnalisé
    Par _skip dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/12/2006, 13h44
  3. Création d'une liste personnalisé
    Par hunzi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 20/09/2006, 20h46
  4. [word]Création d'arrière plan personnalisé
    Par bnadem35 dans le forum Word
    Réponses: 3
    Dernier message: 17/06/2006, 18h31
  5. Création d'un slider personnalisé avec wxwidgets
    Par ckloug dans le forum wxWidgets
    Réponses: 1
    Dernier message: 05/02/2006, 04h33

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