2010-06-10 7 views
1

Je développe une application Android mais je suis encore assez nouveau. Je veux avoir un bouton, et quand vous appuyez sur ce bouton, quelques TextViews et boutons apparaîtront. J'ai donc une disposition linéaire principale, puis une autre disposition linéaire imbriquée à l'intérieur contenant les choses que je veux cacher. J'ai la disposition linéaire imbriquée réglée sur android: visibility = "gone". Le problème que j'ai est que cela montre seulement le premier article à l'intérieur de la disposition linéaire cachée au lieu de chacun d'eux. La façon dont je tente de le faire apparaître estLa mise en page linéaire imbriquée ne montre que la première vue après être passé de visible à Android

vgAddView = (ViewGroup)findViewById(R.id.add_details); 

    btnAche.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      vgAddView.setVisibility(0); 
     } 
    }); 

Mon fichier XML est ce

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<Button 
    android:text="@string/but_stomach_ache" 
    android:id="@+id/but_stomach_ache" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
</Button> 
<Button 
    android:text="@string/but_food" 
    android:id="@+id/but_food" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
</Button> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/add_details" 
    android:visibility="gone"> 
    <TextView 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="@string/when_happen"> 
     </TextView> 
    <Button 
     android:text="@string/happen_now" 
     android:id="@+id/happen_now" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
     </Button> 
</LinearLayout> 
</LinearLayout> 

Répondre

4

Votre TextView dans le LinearLayout est réglé sur android:layout_width="fill_parent" et android:layout_height="fill_parent", ce qui signifie qu'il prendra tout l'espace de le LinearLayout, ne laissant aucune place au Button. Si vous utilisez l'outil livré avec le SDK, vous pouvez voir cela lorsque vous regardez l'activité.

Vous devez définir la hauteur du TextView pour qu'il soit wrap_content ou pour que cela ait de la place pour le Button.

1

Une fois que vous définissez sa visibilité sur true ensemble comme ci-dessous:

  • vgAddView.setVisibility(View.VISIBLE); - pour montrer qu'il
  • vgAddView.setVisibility(View.GONE); - pour cacher
0

Vous devez d'abord TextView a layout_width = "fill_parent ". Cela signifie que TextView ne laisse pas d'espace pour Button. Vous pouvez essayer de définir l'attribut layout_weight ou définir layout_width sur wrap_content