Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Des boutons qui n'apparaissent pas.

android:layout_width=0 / android:layout_weight=1

    18 mars 2012 à 11:52:55

    Bonjour à tous,
    je suis actuellement le tutoriel de Frédéric Espiau (Bon tutoriel, même s'il manque quelques petites informations), et je bloque actuellement sur la création d'une calculatrice :
    http://www.siteduzero.com/tutoriel-3-6 [...] tml#ss_part_4
    Dans la solution de Frédéric Espiau, il explique comment créer l'interface, le problème est qu'à l'écran, aucun des boutons n’apparaît :
    Image utilisateur

    Voici le contenu des fichiers :
    style.xml :
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="common">
            <item name="android:layout_width">0dip</item>
            <item name="android:layout_weight">1</item>
            <item name="android:layout_height">fill_parent</item>
        </style>
    
        <style name="commonBouton" parent="common">
            <item name="android:textSize">18sp</item>
            <item name="android:layout_margin">2.5dip</item>
        </style>    
    
        <style name="boutonAutre" parent="commonBouton" >
            <item name="android:background">@drawable/operateurbouton</item>
            <item name="android:textColor">#FFFFFF</item>
        </style>
    
        <style name="boutonNumero" parent="commonBouton">
            <item name="android:background">@drawable/numberbouton</item>
            <item name="android:textColor">#000000</item>
        </style>
    </resources>
    

    main.xml :
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="#CCFFCC"
        android:padding="5dip" >
        <RelativeLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <RadioGroup
                android:id="@+id/radioGroup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_alignParentLeft="true">
    
                <RadioButton
                    android:id="@+widget/degres"
                    android:textColor="#000000"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:text="Degrés" />
    
                <RadioButton
                    android:id="@+widget/radians"
                    android:textColor="#000000"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Radians" />
            </RadioGroup>
    
            <CheckBox
                android:id="@+checkBox/shift"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:text="SHIFT"
                android:textColor="#FF9933" />
        </RelativeLayout>
        
        <TextView
        android:id="@+widget/affichage"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#99FFFF"
        android:textColor="#000000"
        android:gravity="right"
        android:typeface="monospace"
        android:paddingLeft="20dip"
        android:paddingRight="20dip"
        android:text="0"
        android:textSize="25dip" />
        
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView style="@style/common" />
            <TextView style="@style/common" />
            <TextView
                style="@style/common"
                android:text="SIN" />
            <TextView style="@style/common" />
        </TableRow>
        
        <TableRow
            style="@style/common" >
            <Button
                android:id="@+bouton/clear"
                style="@style/boutonAutre"
                android:text="C" />
            <Button
                android:id="@+bouton/arr"
                style="@style/boutonAutre"
                android:text="@string/retour" />
            <sdz.tp.calculatrice.TrigoButton
                android:id="@+bouton/trigo"
                style="@style/boutonAutre"
                android:text="COS" />
            <Button
                android:id="@+bouton/off"
                style="@style/boutonAutre"
                android:text="OFF" />
        </TableRow>
        
        <TableRow
            style="@style/common" >
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number1"
                style="@style/boutonNumero"
                android:text="1" />
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number2"
                style="@style/boutonNumero"
                android:text="2" />
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number3"
                style="@style/boutonNumero"
                android:text="3" />
            <sdz.tp.calculatrice.OperateurButton
                android:id="@+bouton/add"
                style="@style/boutonAutre"
                android:text="+" />
        </TableRow>
    
        <TableRow
            style="@style/common" >
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number4"
                style="@style/boutonNumero"
                android:text="4" />
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number5"
                style="@style/boutonNumero"
                android:text="5" />
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number6"
                style="@style/boutonNumero"
                android:text="6" />
            <sdz.tp.calculatrice.OperateurButton
                android:id="@+bouton/sou"
                style="@style/boutonAutre"
                android:text="-" />
        </TableRow>
    
        <TableRow
            style="@style/common" >
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number7"
                style="@style/boutonNumero"
                android:text="7" />
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number8"
                style="@style/boutonNumero"
                android:text="8" />
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number9"
                style="@style/boutonNumero"
                android:text="9" />
            <sdz.tp.calculatrice.OperateurButton
                android:id="@+bouton/mul"
                style="@style/boutonAutre"
                android:text="*" />
        </TableRow>
    
        <TableRow
            style="@style/common" >
            <Button
                android:id="@+bouton/point"
                style="@style/boutonAutre"
                android:text="." />
            <sdz.tp.calculatrice.NumberButton
                android:id="@+number/number0"
                style="@style/boutonNumero"
                android:text="0" />
            <Button
                android:id="@+bouton/signChange"
                style="@style/boutonAutre"
                android:text="+/-" />
            <sdz.tp.calculatrice.OperateurButton
                android:id="@+bouton/div"
                style="@style/boutonAutre"
                android:text="/" />
        </TableRow>
        
        <Button
        android:id="@+bouton/boutonEgal"
        style="@style/boutonAutre"
        android:layout_height="wrap_content"
        android:text="=" />
    </LinearLayout>
    

    J'ai créé 3 classes, comme demandé dans le tutoriel, OperateurButton, NumberButton et TrigoButton les 3 classes décritent de la sorte :
    TrigoButton.java :
    package sdz.tp.calculatrice;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.Button;
    
    public class TrigoButton extends Button { 
    	private int value;
    	private CalculatriceActivity activity = null;
            
    	public TrigoButton(Context context) {
    		super(context);
    	}
    	
    	public TrigoButton(Context context, AttributeSet attrs) {
    		super(context, attrs);
    	}
    
    	public TrigoButton(Context context, AttributeSet attrs, int defStyle) {
    		super(context, attrs, defStyle);
    	}
    }
    

    Le problème semble venir du style "common", car en jouant avec, je vois les boutons apparaître.
    Petite citation du tutoriel concernant ce style :

    Citation : Frédéric Espiau

    Nouvelle petite astuce. Si vous mettez la largeur (l'astuce fonctionne aussi en hauteur bien sûr) à « 0dip » et le poids à « 1 », alors le composant prendra toute la place s'il est tout seul (comme un « fill_parent ») et s'il est avec plusieurs composants sur la même ligne qui ont tous la largeur à « 0dip » et le poids à « 1 », alors tous les composants prendront une taille identique de manière à occuper tout l'espace de manière harmonieuse. Attention en revanche, si vous utilisez cette astuce en concurrence avec d'autres vues qui n'utilisent pas l'astuce, alors votre vue pourrait bien se faire complètement écraser.


    Des idées sur le problème en question ?

    Merci d'avance.

    Droup
    • Partager sur Facebook
    • Partager sur Twitter

    [Android] Des boutons qui n'apparaissent pas.

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown