web-dev-qa-db-fra.com

android layout avec visibilité GONE

Quatre vues utilisent le même xml. Je souhaite afficher une disposition linéaire pour view 1 seulement. Je mets Android:visibility="gone" en xml. Et puis je fais ce qui suit pour view 1-

LinearLayout layone= (LinearLayout) view.findViewById(R.id.layone);

layone.setVisibility(View.VISIBLE);

Mais cela ne définit pas la visibilité sur visible.

N'est-il pas possible d'afficher la vue une fois son GONE déclaré en xml?

Je ne veux pas inverser la logique en faisant simplement,

layone.setVisibility(View.GONE);

dans chacune des trois vues sauf la vue 1.

Des idées ou des commentaires?

MISE À JOUR:

Mon xml -

<TextView
                Android:id="@+id/layone"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:text="Previous Page"
                Android:textColor="#000000"
                Android:textSize="16dp"
                Android:paddingLeft="10dp"
                Android:layout_marginTop="10dp"
                Android:visibility="gone" />
         <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="50dp"
            Android:orientation="horizontal"
            Android:padding="10dp"
            Android:gravity="center_vertical"
            Android:layout_marginLeft="10dp"
            Android:layout_marginRight="10dp"          
            Android:tag="PrevEntries"     
            Android:id="@+id/laytwo"
            Android:layout_marginTop="10dp"
            Android:background="@layout/roundedtext"
            Android:visibility="gone" >

            <TextView
                Android:id="@+id/laythree"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_weight="1"
                Android:text="Previous Page"
                Android:textColor="#000000"
                Android:textSize="18dp"
                Android:gravity="center"
                Android:textStyle="bold" />

        </LinearLayout>
25
My God

Fait en l'ayant comme ça:

view = inflater.inflate(R.layout.entry_detail, container, false);
TextView tp1= (TextView) view.findViewById(R.id.tp1);
LinearLayout layone= (LinearLayout) view.findViewById(R.id.layone);
tp1.setVisibility(View.VISIBLE);
layone.setVisibility(View.VISIBLE);
8
My God
<TextView
                Android:id="@+id/layone"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:text="Previous Page"
                Android:textColor="#000000"
                Android:textSize="16dp"
                Android:paddingLeft="10dp"
                Android:layout_marginTop="10dp"
                Android:visibility="gone" />

layone est un TextView.
Vous vous êtes trompé.

LinearLayout layone= (LinearLayout) view.findViewById(R.id.laytwo);// change id here

layone.setVisibility(View.VISIBLE);

devrait faire le travail.

ou changez comme ceci pour afficher le TextView:

TextView layone= (TextView) view.findViewById(R.id.layone);

    layone.setVisibility(View.VISIBLE);
24
Lazy Ninja
<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_below="@+id/activity_register_header"
    Android:minHeight="50dp"
    Android:orientation="vertical"
    Android:visibility="gone" />

Essayez-le .. Pour moi, ce code fonctionne ..

3