テーマプルダウンの横にプルダウンメニューがあります。そのホバーテキストには、「関連するアクティビティまたはフラグメント提供コンテキスト」と表示されます。
この(新しい)ウィジェットは、グラフィカルレイアウトエディタのドキュメントでは説明(または表示)されていません。
これは通常、このビューを表示するアクティビティまたはフラグメントであると思います。しかし、レイアウトエディタはこの情報をどのように処理しますか?どういうわけか、アクションバーのカスタマイズをプレビューするために使用できますか?
テーマプルダウンの横にプルダウンメニューがあります。そのホバーテキストには、「関連するアクティビティまたはフラグメント提供コンテキスト」と表示されます。
この(新しい)ウィジェットは、グラフィカルレイアウトエディタのドキュメントでは説明(または表示)されていません。
これは通常、このビューを表示するアクティビティまたはフラグメントであると思います。しかし、レイアウトエディタはこの情報をどのように処理しますか?どういうわけか、アクションバーのカスタマイズをプレビューするために使用できますか?
Androidツールのブログには、次のように記載されています。
新しいメニューを追加しました:アクティビティチューザー。これにより、このレイアウトに使用するアクティビティコンテキストを選択できます。
初めてレイアウトを開くとき、(アクティビティクラスを見て、それらがどのレイアウトを参照しているかを確認することで)正しいレイアウトを推測しようとしますが、ここで別のアクティビティを選択できます。マニフェストファイルのアクティビティにテーマを割り当てた場合、レイアウトに関連付けられたアクティビティを使用して、レンダリングするテーマを選択します。「アクティビティ名を開く」を選択して、Javaエディタでアクティビティを開くこともできます。将来的には、アクティビティ<->レイアウトの関連付けを使用して他の機能を駆動する予定です。
tools:context
この値を変更した後、XMLの最上位要素に新しい属性が追加されたことに気付きました。これにより、この関連する質問と回答が表示されました。また、ドキュメントに含めるように要求 するドキュメントのバグレポートを入力しました。
その属性は基本的に、レイアウトの上にある「関連アクティビティ」選択の永続性です。実行時には、レイアウトは常にアクティビティに関連付けられます。もちろん、複数、ただし少なくとも1つに関連付けることができます。ツールでは、特定の機能を駆動するために、このマッピング(実行時に反対方向に発生します。アクティビティはsetContentView(layout)を呼び出してレイアウトを表示できます)について知る必要があります。
現在、これを使用しているのは1つだけです。レイアウトに表示する適切なテーマを選択する(マニフェストファイルはアクティビティに使用するテーマを登録できるため、レイアウトに関連付けられているアクティビティがわかったら、選択できます)レイアウトに表示する適切なテーマ)。将来的には、これを使用して、アクションバー(アクティビティに関連付けられている)のレンダリング、onClickハンドラーを追加する場所などの追加機能を駆動します。
これがツールである理由:名前空間属性は、これがツールで使用するための設計時のマッピングにすぎないためです。レイアウト自体は、複数のアクティビティ/フラグメントなどで使用できます。たとえば、適切なテーマを表示できるように、デザインタイムバインディングを選択する方法を提供したいと思います。リストビューやフラグメントバインディングなどを変更できるのと同じように、いつでも変更できます。
(これについての詳細が記載されている完全なチェンジセットは次のとおりです: https ://android-review.googlesource.com/#/c/36273/ )
そして、ええ、上記のリンクNikolayは、新しい構成チューザーの外観と動作を示しています:http: //tools.android.com/recent/newconfigchooser
もう1つ、「tools」名前空間は特別です。androidパッケージツールはそれを無視することを知っているので、これらの属性はいずれもAPKにパッケージ化されません。レイアウトの追加のメタデータに使用しています。また、たとえば、lint警告を抑制する属性が保存されている場所でもあります-tools:ignoreとして。