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 :

adapterViewFlipper et "layout_width"


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut adapterViewFlipper et "layout_width"
    Bonsoir =)

    Assez nouveau dans le développement Android, je suis confronté à un problème assez bête auquel je ne trouve pas de solutions malgré plusieurs jours de recherches (pas 24/24 hein x) ). Et ne trouvant ni d'exemples parlants sur la toile, ni de sujet similaires..je me permet de vous soumettre ce problème :

    C'est assez simple. J'ai deux xmls :
    -> Un contenant un adapterViewFlipper.
    -> l'autre contenant une relativeLayout.

    Le but côtés code a été de relier ces deux XML via un simpleCursorAdapter..ça s'est fait sans grands problèmes
    Cependant, je souhaiterai que mon adapterViewFlipper prenne le minimum de place nécessaire en hauteur, et la taille maximum en largeur. J'ai donc ajouté ceci dans le layout.xml le contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <AdapterViewFlipper
            android:id="@+id/flipper_cartouche"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_orange_light"/>
    Et le résultat affiché n'est pas celui attendu ! mon adapteur réagis comme si la largeur doit être la minimum possible !
    En testant 'android:layout_height="match_parent"', l'adapterViewFlipper prend bien tout l'écran...je comprend pas du coup la mécanique :/

    Je me suis dit qu'il fallait changer la largeur et hauteur du relativeLayout de l'autre xml, mais le résultat reste le même...

    Je me suis également demandé si le fait de creer le lien entre ces deux xml dans le code ne modifiait pas d'une certaine manière mon adapterViewFlipper.. et qu'il me fallait redéfinir sa largeur en "match_parent" par le code java..et là je ne trouve pas d'exemple qui marche pour un adapterviewFlipper...

    Voici les plans en gros de mes deux xml si besoin :

    xml1 :
    FrameLayout
    ->ImageView
    ->Button
    ->Button
    ->AdapterViewFlipper

    xml2:
    RelativeLayout
    ->TextView ( layout_aligneParentRight = true )
    ->TextView ( layout_aligneParentLeft = true )

    Merci pour le coup de patte j'arrive pas à comprendre d'où peut provenir le soucis.

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Déjà... le wrap_content sur un adapter view (AdapterViewFlipper y compris) est un poil compliqué, je ne suis pas sur qu'il sache exactement comment récupérer les tailles des views fournies par l'adapter (d'autant qu'elle sont vraiment dynamiques). Cela nécessiterait de recalculer toute l'interface à chaque fois que la vue change...

    D'autre part, le FrameLayout avec plusieurs 'childs' me semble un poil chaud chaud...

    Pourrais-tu nous donner l'ensemble des XMLs ? (en tout cas les deux en question)...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    merci de prendre un peu de tempspour mon problème

    Voici le layout qui contient le Flipper :
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:background="@android:color/background_dark">
     
        <ImageView
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@string/image_description"
            android:scaleType="centerInside"
            android:src="@drawable/paysage" />
     
    	<Button
            android:id="@+id/btn_previous"
            android:layout_width="90dip"
            android:layout_height="wrap_content"
    		android:layout_gravity="center_vertical"
            android:text="@string/label_prev" />
     
        <Button
            android:id="@+id/btn_next"
            android:layout_width="90dip"
            android:layout_height="wrap_content"
    		android:layout_gravity="center_vertical|right"
            android:text="@string/label_next" />
     
        <AdapterViewFlipper
            android:id="@+id/flipper_cartouche"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_orange_light"/>
    </FrameLayout>
    et l'autre .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
     
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        	xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/container_info"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"
            android:alpha="0.3"
            android:background="@android:color/background_light" >
     
            <TextView
                android:id="@+id/label_top_left"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="6dip"
                android:text="@string/label_top_left" />
     
            <TextView
                android:id="@+id/label_top_right"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_margin="6dip"
                android:text="@string/label_top_right" />
     
            <TextView
                android:id="@+id/label_bottom_left"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/label_top_left"
                android:layout_margin="6dip"
                android:text="@string/label_bottom_left" />
     
            <TextView
                android:id="@+id/label_bottom_right"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_below="@id/label_top_right"
                android:layout_margin="6dip"
                android:text="@string/label_bottom_right" />
        </RelativeLayout>

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Ben voila... d'un coté tu dis "wrap_content" (adapte la taille au fils)
    Et dans le fils: "match_parent" (adapter la taille au parent)

    Qui décide de la taille ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 56
    Points
    56
    Par défaut
    hmmm comme dis dans le premier post (de façon pas assez claire peut être)...j'ai testé les combinaisons possibles sur le relative en gardant ces paramètres Adapters...mais le problème persiste ...


    Ansin, en mettant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    Au relativeLayout Et à l'adapter..je me retrouve toujours avec une espece de carré en haut a gauche de mon interface..alors que ça devrait normalement prendre tout la largeur comme demandé.

    edit : j'ai oublié de précisé que dans le doute, je viens tout de même de refaire le test ^^

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