web-dev-qa-db-ja.com

Android XML-layoutsでの<merge>および<include>の簡単な使用例

私は<merge>および<include> tags in AndroidXML-layouts。2つのチュートリアルを読みましたが、簡単な使用例はまだ見つかりませんでした。

誰かがそのような例を提供したり、その例を示したりできたら幸いです。

73
aioobe

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>
96
yanchenko

シンプルなAndroid XMLレイアウト<include /> HOWTOがあります。これは http://www.coboltforge.com/2012/05/tech-stuff- layout / 。それが役立つかもしれません...

5
bk138

例を挙げましょう:

2つのタグ<EditText><ListView >があり、複数のUIを提供しています。そのため、このようなすべてのUIに含めるために、以下に示すようにXMLファイルを作成しました。

<?xml ...>
<EditText ... />
<ListView ... />   

上記のXMLはルート要素を持っていなかったため、有効なXMLではありません。そのため、XMLのためだけにルート要素が必要です。 <merge>は、次のソリューションです。

<?xml ...>
<merge xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <EditText ... />
    <ListView ... />
</merge>
4
Habeeb Perwad

<merge>タグは、レベルの数を軽減して、レイアウトのレンダリングのパフォーマンスを向上させるために使用されます。タグは<include>タグと完全に一緒に使用されます。

たとえば、ログインレイアウトがあり、アプリのスコープ内で複数のレイアウトに使用されています。タグを使用してlogin_layoutを表示しながら、レベルを使用およびエスケープできます。

また、レイアウトに関するトリックを読むことをお勧めします。 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(login_form.xmlを含めたいレイアウト)

<merge xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools" >

    <include layout="@layout/login_form" />

</merge>

レベル階層を見ることができます enter image description here

2
huseyin

idはコードを貼り付けません。そうしないと、相対レイアウトパラメーターが機能します。いくつかの異なる処理を行います

2
dev