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>
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: SichtbarkeitParameter:
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
.)
TextView view = (TextView) findViewById(R.id.textView);
view.setText("Add your text here");
view.setVisibility(View.VISIBLE);
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);
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.
verwenden Sie dies programmgesteuert:
view.setVisibility(View.GONE); //For GONE
view.setVisibility(View.INVISIBLE); //For INVISIBLE
view.setVisibility(View.VISIBLE); //For VISIBLE