Antworten:
Bearbeiten: Wie in einem Kommentar zu Recht hier einige weitere Informationen angefordert. Verwenden Sie das include
Tag
<include
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/yourlayout" />
um das Layout einzuschließen, das Sie wiederverwenden möchten.
Überprüfen Sie diesen Link aus ...
<include />
Tag tun können. Sie können dies jedoch mit Java-Code tun. siehe Phileo99 Antwort unten zu wissen , wie Sie einen Verweis auf das mitgelieferte Layout zu erhalten. und dann können Sie den Inhalt ändern.
Beachten Sie, dass beim Einfügen android:id...
in das <include />
Tag die im enthaltenen Layout definierte ID überschrieben wird. Beispielsweise:
<include
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/some_id_if_needed"
layout="@layout/yourlayout" />
yourlayout.xml:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/some_other_id">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/button1" />
</LinearLayout>
Dann würden Sie dieses enthaltene Layout im Code wie folgt referenzieren:
View includedLayout = findViewById(R.id.some_id_if_needed);
Button insideTheIncludedLayout = (Button)includedLayout.findViewById(R.id.button1);
Verwenden <include />
Tag.
<include
android:id="@+id/some_id_if_needed"
layout="@layout/some_layout"/>
Lesen Sie auch die Artikel Erstellen wiederverwendbarer UI-Komponenten und Zusammenführen von Layouts .
Aus offiziellen Dokumenten zur Wiederverwendung von Layouts
Obwohl Android eine Vielzahl von Widgets bietet, um kleine und wiederverwendbare interaktive Elemente bereitzustellen, müssen Sie möglicherweise auch größere Komponenten wiederverwenden, für die ein spezielles Layout erforderlich ist. Um vollständige Layouts effizient wiederzuverwenden, können Sie mit dem Tag ein anderes Layout in das aktuelle Layout einbetten.
Hier ist meine header.xml- Datei, die ich mit dem include-Tag wiederverwenden kann
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center"
android:text="@string/app_name"
android:textColor="#000000" />
</RelativeLayout>
Nein, ich benutze die Tag in XML, um ein weiteres Layout aus einer anderen XML-Datei hinzuzufügen.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#f0f0f0" >
<include
android:id="@+id/header_VIEW"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/header" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#ffffff"
android:orientation="vertical"
android:padding="5dp" >
</LinearLayout>
Because I want to reuse a ProgressBar
welches Problem kommt?
Weitere Informationen Verwenden Sie diesen Link https://developer.android.com/training/improving-layouts/reusing-layouts.html
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Game_logic">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:id="@+id/text1"
android:textStyle="bold"
tools:text="Player " />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_marginLeft="20dp"
android:id="@+id/text2"
tools:text="Player 2" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Blockquote
Über dem Layout können Sie in anderen Aktivitäten verwenden
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SinglePlayer">
<include layout="@layout/activity_game_logic"/>
</androidx.constraintlayout.widget.ConstraintLayout>