2013-05-09 6 views
1

J'ai la disposition relative et à l'intérieur il y a deux dispositions linéairesdisposition linéaire dans l'erreur de disposition relative

le programme fonctionne sans la première disposition linéaire. quelqu'un peut-il expliquer pourquoi?

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/bngp" > 

    <TextView 
     android:id="@+id/Cart" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginBottom="5dp" 
     android:layout_marginTop="5dp" 
     android:gravity="center_horizontal" 
     android:paddingTop="10dp" 
     android:text="Cart" 
     android:textColor="#FFFFFF" 
     android:textSize="25sp" 
     android:textStyle="bold" /> 

// Ceci est la disposition linéaire provoque une erreur

<LinearLayout 
     android:id="@+id/table" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/Cart" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/Product" 
      android:layout_height="wrap_content" 
      android:layout_weight="6" 
      android:text="Product" 
      android:textColor="#000000" /> 

     <TextView 
      android:id="@+id/Quantity" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:gravity="center" 
      android:text="Quantity" 
      android:textColor="#000000" /> 

     <TextView 
      android:id="@+id/Price" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:gravity="center" 
      android:text="Price" 
      android:textColor="#000000" /> 

     <TextView 
      android:id="@+id/Value" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:gravity="center" 
      android:text="Value" 
      android:textColor="#000000" /> 
    </LinearLayout> 

// fin de la mise en page linéaire


<ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/textView1" 
     android:layout_below="@id/table" /> 

    <TextView 
     android:id="@id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/linear" 
     android:paddingBottom="20dp" 
     android:paddingTop="20dp" 
     android:text="Total Value: " 
     android:textColor="#FFFFFF" /> 

    <TextView 
     android:id="@+id/Final_result" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/linear" 
     android:layout_toRightOf="@id/textView1" 
     android:paddingBottom="20dp" 
     android:paddingTop="20dp" 
     android:textColor="#FFFFFF" /> 

<LinearLayout 
     android:id="@id/linear" 
     style="@android:style/ButtonBar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" > 

     <Button 
      android:id="@+id/button3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Confirm" /> 

     <Button 
      android:id="@+id/button4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Clear" /> 
    </LinearLayout> 

</RelativeLayout> 
+0

Peut-être parce que vous êtes absent 'android: weightSum = "" 'dans le premier' LinearLayout', vous définissez 'android: layout_weight' dans ses enfants – jnthnjns

+1

Quelle erreur obtenez-vous? – jnthnjns

+0

A part les "hauteurs" ou les "largeurs" de vues qui ne sont pas définies et certaines "bonnes pratiques" qui ne sont pas abordées, cela semble fonctionner correctement pour moi. – jnthnjns

Répondre

0

Pour commencer, au lieu d'utiliser @ id/blah, utilisez toujours @ + id/blah (même si vous ne définissez pas la vue). Cela ne fait pas de mal, et peut empêcher certains vraiment difficile de traquer les erreurs.

Pour plus de détails, veuillez indiquer l'erreur que vous recevez.

+0

Rien à redire avec cette réponse. Il est vrai qu'un + est requis pour un nouvel identifiant. Sinon, le constructeur peut supposer que l'ID existe déjà dans le dossier Ressource R.java, ou le lier à une ressource déjà existante que vous n'avez pas nécessairement besoin d'utiliser Les downvotes doivent être justifiées et éditées jusqu'à un certain niveau. . – Br0thazS0ul

3

Vérifiez votre disposition maintenant. J'ai édité quelques lignes. utilisez @ + id au lieu de @id. Vous devez connaître la différence entre @id, @ + id et @android: id.

-à-dire,

"@android:id" which means you are referencing an item in Android namespace. 

"@id" means you have defined ids in your application itself, 

par exemple: -

============================== =============================

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <item name="TextView1" type="id"/> 
</resources> 

dans ce cas, vous avez défini un id textview dans vos ressources. Maintenant, vous pouvez utiliser,

<TextView 
    android:id="@id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 

====================================== =====================

"@+id" means you are created a view (textview , layouts , etc..) in your layout and you wanted to add the id to R.java. 

Vérifiez votre mise en page maintenant,

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/bngp" > 

<TextView 
    android:id="@+id/Cart" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_marginBottom="5dp" 
    android:layout_marginTop="5dp" 
    android:gravity="center_horizontal" 
    android:paddingTop="10dp" 
    android:text="Cart" 
    android:textColor="#FFFFFF" 
    android:textSize="25sp" 
    android:textStyle="bold" /> 

<LinearLayout 
    android:id="@+id/table" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/Cart" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/Product" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="6" 
     android:text="Product" 
     android:textColor="#000000" /> 

    <TextView 
     android:id="@+id/Quantity" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" 
     android:gravity="center" 
     android:text="Quantity" 
     android:textColor="#000000" /> 

    <TextView 
     android:id="@+id/Price" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:gravity="center" 
     android:text="Price" 
     android:textColor="#000000" /> 

    <TextView 
     android:id="@+id/Value" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:gravity="center" 
     android:text="Value" 
     android:textColor="#000000" /> 
</LinearLayout> 

<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/textView1" 
    android:layout_below="@+id/table" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/linear" 
    android:paddingBottom="20dp" 
    android:paddingTop="20dp" 
    android:text="Total Value: " 
    android:textColor="#FFFFFF" /> 

<TextView 
    android:id="@+id/Final_result" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/linear" 
    android:layout_toRightOf="@+id/textView1" 
    android:paddingBottom="20dp" 
    android:paddingTop="20dp" 
    android:textColor="#FFFFFF" /> 

<LinearLayout 
    android:id="@+id/linear" 
    style="@android:style/ButtonBar" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" > 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Confirm" /> 

    <Button 
     android:id="@+id/button4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Clear" /> 
</LinearLayout> 

</RelativeLayout> 
Questions connexes