webentwicklung-frage-antwort-db.com.de

So ändern Sie die Sichtbarkeit des Layouts programmgesteuert

Es gibt die Möglichkeit, die Sichtbarkeit von View zu ändern. Wie kann ich jedoch die programmatische Sichtbarkeit des in XML definierten Layouts ändern? Wie bekomme ich ein Layoutobjekt?

<LinearLayout
    Android:id="@+id/contacts_type"
    Android:orientation="horizontal"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:visibility="gone">
</LinearLayout>
51

Schauen Sie sich View.setVisibility(View.GONE / View.VISIBLE / View.INVISIBLE) an.

Aus den API-Dokumenten :

public void setVisibility(int visibility)

Seit: API Level 1

Legt den aktivierten Status dieser Ansicht fest.
Verwandte XML-Attribute: Android: Sichtbarkeit

Parameter:
visibility Einer von VISIBLE, INVISIBLE oder GONE.

Beachten Sie, dass LinearLayout ein ViewGroup ist, das wiederum ein View ist. Das heißt, Sie können sehr gut beispielsweise myLinearLayout.setVisibility(View.VISIBLE) aufrufen.

Das macht Sinn. Wenn Sie Erfahrung mit AWT/Swing haben, erkennen Sie dies an der Beziehung zwischen Container und Component. (A Container ist aComponent.)

97
aioobe
TextView view = (TextView) findViewById(R.id.textView);
view.setText("Add your text here");
view.setVisibility(View.VISIBLE);
13
SuperNova1054

Verwenden Sie dieses Layout in Ihrer XML-Datei 

<LinearLayout
  Android:id="@+id/contacts_type"
  Android:orientation="horizontal"
  Android:layout_width="fill_parent"
  Android:layout_height="wrap_content"
  Android:visibility="gone">
</LinearLayout>

Definieren Sie Ihr Layout in der .class-Datei 

 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.contacts_type);

Wenn Sie nun dieses Layout erstellen möchten, schreiben Sie einfach 

 linearLayout.setVisibility(View.VISIBLE);

und wenn Sie das Layout ausblenden möchten, schreiben Sie einfach 

 linearLayout.setVisibility(View.INVISIBLE);
6
pavel

Sie können die Sichtbarkeit des Layouts genauso wie für die normale Ansicht ändern. SetVisibility (View.GONE) usw. verwenden. Alle Layouts sind nur Ansichten. Sie haben View als übergeordnetes Element.

1

verwenden Sie dies programmgesteuert:

 view.setVisibility(View.GONE); //For GONE
 view.setVisibility(View.INVISIBLE); //For INVISIBLE
 view.setVisibility(View.VISIBLE); //For VISIBLE
0
Hanisha