web-dev-qa-db-ja.com

Android XMLレイアウトのxmlns:toolsの意味は何ですか?

たとえば、

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent" >
...

置く必要がありますか?

25
Stokres

ドキュメントのXML名前空間を定義します。それ以外の場合は、<RelativeLayout>はパーサーによって認識されませんでした。

名前空間は、XMLドキュメントがさまざまなベンダーのタグを含めるための方法です。宣言するxmlns属性を使用すると、デフォルトで、ここで定義されているXML要素を使用していることになります。 http://schemas.Android.com/apk/res/Android (注このリンクが壊れていること- この議論 理由を説明します)。

また、追加の名前空間toolsを宣言します。これはデフォルトの名前空間ではないため、そこで定義された要素または属性を参照する場合、次のようにtoolsプレフィックスを追加する必要があります。

tools:context=".SomeActivity"
27
kamituel

以下はAndroid dev portal: https://developer.Android.com/studio/write/tool-attributes.html からの便利なリンクです。

それは言う

Android Studioは、ツールネームスペースでさまざまなXML属性をサポートし、デザイン時機能(フラグメントに表示するレイアウトなど)またはコンパイル時の動作(XMLリソースに適用する縮小モードなど)を有効にします。アプリをビルドすると、ビルドツールはこれらの属性を削除するため、APKのサイズや実行時の動作に影響はありません。

つまり、ツールの名前空間はUIの設計に役立ち、プレフィックス「tools」を持つすべての属性はビルド時に削除されます。

1
Jose

実際、あなたがするとき:

<RelativeLayout Android:id> </RelativeLayout>

Android:idを呼び出す代わりに、xmlは http://schemas.Android.com/apk/res/Android:id を呼び出します。 XMLで使用できるすべての属性とビューを宣言するページです。

ここに説明があります。 http://www.w3schools.com/xml/xml_namespaces.asp

0
Android