パネルは、占有する領域のプロパティを記述し、アプリ コンテナとして機能します。XML 構成を使用してパネルを定義します。これにより、柔軟でコード不要な方法で UI をカスタマイズできます。インスタンスと状態を管理するために、システムは定義されたパネルを追跡します。
パネルリスト
システム UI は、window_states
という名前の配列リソースからパネルの定義を読み込みます。このリソース配列は、個々のパネル構成が定義されている XML ファイルを指します。この一元化されたアプローチにより、スケーラブル UI によって管理されるパネルは意図したとおりに読み込まれ、システムで使用できるようになります。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
パネル定義
スケーラブル UI フレームワークの各パネルは、アプリ コンテナのプロパティを記述する <TaskPanel>
という名前の XML タグで定義されます。システム UI はこれらのパネル定義を読み込み、別の構成が読み込まれるまでパネルを追跡します。
たとえば、回転や明示的なシステム リクエストによる構成の変更などです。<TaskPanel>
は、構成可能な UI コンポーネントを通じてカスタマイズされたエクスペリエンスを構築するための基盤となるコンポーネントとして機能します。
XML 属性
<TaskPanel>
タグには、状態と遷移を定義するために使用できる次の属性を含めることができます。
属性 | ステータス | 説明 |
---|---|---|
id |
必須 | パネルの一意の識別子を指定します。この属性は、PanelPool からパネルを取得し、システム内でその状態を管理するために使用されます。 |
role |
必須 | システム内のパネルの目的または機能を定義します。この値は、文字列リソース、コンポーネント名の文字列配列、またはレイアウト ID を参照できます。たとえば、常にパネルに表示される永続的なアクティビティや、拡張されるレイアウトを定義できます。 |
defaultVariant |
任意 | パネルが読み込まれたときに最初に採用するバリアントの ID を指定します。指定しない場合、システムは最初に定義されたバリアントをデフォルトとして使用できます。 |
displayId |
任意 | パネルを表示するディスプレイの ID を指定します。 |
defaultLayer |
任意 | バリアントでレイヤが明示的に定義されていない場合に、パネルのバリアントのデフォルトの Z オーダーを指定できます。 |
controller |
省略可、 変更される可能性があります |
パネル固有のコントローラを定義するリソース(通常は XML ID)を参照します。これにより、構成値をカスタム パネル コントローラに保存して渡すことができます。 これらのコントローラは |
XML 子要素
<TaskPanel>
タグには、特性とデフォルトの動作を定義する次の属性を含めることができます。
属性 | 説明 |
---|---|
<Variant> |
ネストされたタグは、特定の時点でのパネルの特定の視覚構成を表します。パネルには複数のバリエーションがあり、それぞれが一意の ID で識別されます。 各バリエーションは、特定の構成の境界、可視性、レイヤ、アルファ、角丸の半径、インセットなどのプロパティを定義します。バリエーションは、親バリエーションからプロパティを継承することもできます。 |
<KeyFrameVariant> |
<Variant> の拡張により、連続した割合値(0 ~ 1)に基づいて、異なるバリアント間の視覚プロパティを補間できます。これは、ドラッグ操作中など、パネルの状態がドラッグ量などの連続した入力に依存する場合の、スムーズで動的なトランジションに使用されます。 |
<Transitions> |
ネストされたタグには、さまざまなバリエーション間で UI をアニメーション表示する方法を記述する 各 |
サンプルコード
<Panel id="@+id/panelId"
role="@array/roleValue"
defaultVariant="@id/closed"
displayId="0" >
<Variant id="@+id/base">
<Bounds left="0" top="0" width="100%" height="100%"/>
</Variant>
<Variant id="@+id/opened" parent="@id/base">
<Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed" parent="@id/base">
<Visibility isVisible="false"/>
</Variant>
<Transitions>
<Transition fromVariant="@id/closed"
toVariant="@id/opened"
onEvent="open_event"/>
<Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
</Transition>
</Transitions>
</Panel>