Ich bin neugierig auf die <merge>
und <include>
Tags in Android XML-Layouts. Ich habe zwei Tutorials gelesen, aber noch keine einfache Beispielverwendung gefunden.
Würde mich freuen, wenn jemand ein solches Beispiel liefern oder einen Zeiger auf eines geben könnte.
Antworten:
some_activity.xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> // some views <include layout="@layout/view_part"/> // probably more views </LinearLayout>
view_part.xml :
<merge xmlns:android="http://schemas.android.com/apk/res/android"> // the views to be merged </merge>
quelle
<include>
bedeutet im Grunde "nimm diese Datei und füge ihren Inhalt hier ein".Nehmen Sie ein Beispiel:
Ich habe zwei Tags
<EditText>
und<ListView >
mehr als eine Benutzeroberfläche. Also habe ich eine XML-Datei wie unten angegeben erstellt, um sie in alle diese Benutzeroberflächen aufzunehmen.<?xml ...> <EditText ... /> <ListView ... />
Das obige XML ist kein gültiges XML, da es kein Stammelement hatte. Ein Root-Element wird also nur für XML benötigt.
<merge>
ist die Lösung wie folgt:<?xml ...> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <EditText ... /> <ListView ... /> </merge>
quelle
Unter http://www.coboltforge.com/2012/05/tech-stuff-layout/ gibt es ein einfaches Android XML-Layout <include /> HOWTO, das auch eine häufige Gefahr erklärt . Das kann helfen ...
quelle
id fügt keinen Code ein, sonst hätten relative Layoutparameter funktioniert. Es wird eine andere Verarbeitung durchgeführt
quelle
<merge>
Tag wird verwendet, um die Anzahl der Ebenen zu verringern und die Leistung beim Rendern von Layouts zu erhöhen. Tag wird mit<include>
Tag perfekt zusammen verwendet.Nehmen wir ein Beispiel, wir haben ein Login-Layout und werden für mehr als eines im Umfang unserer App verwendet. Während wir das Tag verwenden, um login_layout anzuzeigen, können wir ein Level verwenden und ihm entkommen.
Ich rate Ihnen auch, die Tricks zu Layouts zu lesen. http://android-developers.blogspot.com.tr/2009/03/android-layout-tricks-3-optimize-by.html
login_form.xml
<?xml version="1.0" encoding="utf-8"?> <!-- Login form --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/email" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Email..." android:inputType="textEmailAddress" android:maxLines="1" android:singleLine="true" android:visibility="visible" /> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Password.." android:imeActionId="@+id/login" android:imeOptions="actionUnspecified" android:inputType="textPassword" android:maxLines="1" android:singleLine="true" android:text="1337" android:visibility="visible" /> <Button android:id="@+id/sign_in_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="16sp" android:paddingLeft="32sp" android:paddingRight="32sp" android:text="Login" android:visibility="visible" /> </LinearLayout>
example_layout.xml (jedes Layout, das login_form.xml enthalten soll)
<merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" > <include layout="@layout/login_form" /> </merge>
Wir können die Ebenenhierarchie sehen
quelle