Grid List
Alexa Grid Listテンプレート(AlexaGridList)は、画像とテキストのリストをグリッドで表示します。AlexaGridListは全画面テンプレートで、必要に応じてヘッダーと背景を表示できます。リストに表示する画像ベースの項目を指定して、リストの外観(区切り線を挿入する、項目に番号を付けるなど)を設定できます。ユーザーがリストから項目を選択したときに実行するコマンドも指定できます。
AlexaGridListにはAPL 1.4以降が必要です。これよりも古いバージョンのAPLを実行しているデバイスには、別のエクスペリエンスを提供してください。互換性
AlexaGridListは、alexa-viewport-profilesパッケージのすべての標準Viewportプロファイルで動作するように設計されています。次のプロファイルに対応しています。
- すべての円形デバイスプロファイル
- すべての横長デバイスプロファイル
- すべての縦長デバイスプロファイル
- すべてのモバイルプロファイル
- すべてのテレビプロファイル
サポートされていないViewportでAlexaGridListを使用すると、予期しない結果になることがあります。Viewportプロファイルの詳細については、Viewportプロファイルを参照してください。
alexa-layoutsパッケージをインポートする
AlexaGridListを使用するには、alexa-layoutsパッケージをインポートします。
alexa-layoutsパッケージの最新バージョンは1.7.0です。AlexaGridListはバージョン1.2.0で導入されました。
AlexaGridListのパラメーター
type以外のパラメーターはすべてオプションです。
| 名前 | 型 | デフォルト | 説明 | ウィジェットのサポート | 追加されたバージョン |
|---|---|---|---|---|---|
|
|
文字列 |
|
背景画像または背景ビデオの配置を指定します。 |
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
— |
背景色として使用する色です。 |
サポートされません |
1.2.0 | |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
— |
背景画像ソースのURLです。 |
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
|
背景画像または背景ビデオのサイズを調整する方法を指定します。 |
サポートされません |
1.2.0 |
|
|
— |
背景ビデオのソースです。Videoコンポーネントの |
サポートされません |
1.2.0 | |
|
|
任意 |
— |
各リスト項目に使用するカスタムレイアウトの名前です。未設定のままにすると、リスト項目に |
サポートされません |
1.2.0 |
|
|
文字列 |
— |
|
サポートされません |
1.2.0 |
|
|
配列 |
— |
このテンプレートにバインドするentityデータの配列です。 |
サポートされません |
1.2.0 |
|
|
文字列 |
— |
アトリビューションの画像ソースのURLです。 |
サポートされません |
1.2.0 |
|
|
数値 |
小型の円形デバイスでは |
アトリビューションテキストとアトリビューション画像の不透明度です。 |
サポートされません |
1.3.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
— |
ヘッダーで表示するアトリビューションのテキストです。 |
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
|
スクリーンリーダーを使用するユーザーに、戻るボタンについて説明するアクセシビリティラベルです。 |
サポートされません |
1.2.0 |
|
|
|
ユーザーが戻るボタンを選択したときに実行するコマンドです。 |
サポートされません |
1.2.0 | |
|
|
文字列 |
|
ヘッダーの背景色として使用するオプションの色の値です。 |
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
— |
ヘッダーに表示する第2テキストです。 |
サポートされません |
1.2.0 |
|
|
文字列 |
— |
ヘッダーに表示する第1テキストです。 |
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
|
リスト内のすべての項目の画像バウンディングボックスに使用するアスペクト比です。オプションは、square、round、standard_landscape、standard_portrait、poster_landscape、poster_portrait、widescreenです。このプロパティは、 |
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
|
|
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.3.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
|
|
文字列 |
|
コンテンツのレイアウト方向を指定します。このプロパティは、 |
サポートされません |
1.4.0 |
|
|
任意 |
— |
GridSequenceにバインドするエンティティデータの配列です。 |
サポートされません |
1.5.0 |
|
|
文字列 |
— |
リストとして使用される |
サポートされません |
1.2.0 |
|
|
ディメンション |
表示するデータのサイズに基づいて計算されます。 |
リスト項目の高さです。 |
サポートされません |
1.2.0 |
|
|
数値 |
0 |
1行に表示するリスト項目の数です。このプロパティを大きい値に設定すると、画像が切り詰められることがあります。 |
サポートされません |
1.2.0 |
|
|
— |
リストに表示する項目の配列です。各項目は、 |
サポートされません |
1.2.0 | |
|
|
— |
|
サポートされません |
1.2.0 | |
|
|
任意 |
— |
読み上げ項目の配列です。 |
サポートされません |
1.2.0 |
|
|
文字列 |
|
色のテーマをダークまたはライトに設定します。テーマを選択することでテンプレートの色を制御します。 |
サポートされません |
1.2.0 |
|
|
文字列 |
— |
常に |
サポートされません |
1.2.0 |
|
|
文字列 |
|
ビデオを再生する際に流すオーディオトラックです。指定できる値は、 |
サポートされません |
1.2.0 |
|
|
ブール値 |
|
|
サポートされません |
1.2.0 |
水平リストの密度(listItemHorizontalCount)
AlexaGridListは水平方向にスクロールしません。テンプレートは、固定数の項目を複数の行に表示します。1行に表示するリスト項目の数は、listItemHorizontalCountプロパティを使用して設定できます。AlexaGridListはデフォルトで、listItemHorizontalCountをimageAspectRatioとViewportサイズに基づいた数値に設定します。このデフォルト値では、すべてのリスト項目が切り詰められずに表示されます。
次の表は、標準Viewportプロファイルと画像のアスペクト比ごとのデフォルト値をまとめたものです。
| 画像のアスペクト比 | デバイス、円形 | デバイス、横長、小 | デバイス、横長、中 | デバイス、横長 | テレビ、全画面 |
|---|---|---|---|---|---|
| 正方形 | 1 | 3 | 3 | 3 | 4 |
| 円形 | 1 | 3 | 3 | 3 | 4 |
| 標準、横長 | 1 | 3 | 3 | 3 | 4 |
| 標準、縦長 | 2 | 4 | 4 | 4 | 5 |
| ポスター、横長 | 1 | 3 | 3 | 3 | 4 |
| ポスター、縦長 | 2 | 4 | 4 | 4 | 5 |
| ワイド画面 | 1 | 2 | 2 | 3 | 4 |
これらのレスポンシブ対応のデフォルトを使用するには、listItemHorizontalCountを未設定のままにします。listItemHorizontalCountを変更すると、AlexaGridListは、指定された項目数が1行に収まるように必要に応じてリスト項目を切り詰めます。


リスト項目を指定する
AlexaGridListテンプレートは、listItemsプロパティに項目の配列が設定されることを想定しています。リスト項目を構成するには、次のいずれかの方法を使用します。
AlexaImageListItemレスポンシブ対応コンポーネントで定義されているものと同じプロパティを持つオブジェクトの配列を提供する。- リスト項目のカスタムレイアウトを定義し、カスタム項目に対応するオブジェクトの配列を渡す。
リスト項目にAlexaImageListItemを使用する
次の例は、gridListDataというデータソース内の項目の配列を示しています。
{
"gridListData": {
"listItemsToShow": [
{
"primaryText": "1番目のリスト項目です。",
"secondaryText": "第2テキストです。",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/md_gruyere.png",
"imageProgressBarPercentage": 90,
"imageShowProgressBar": false,
"ratingSlotMode": "multiple",
"ratingNumber": 2.87,
"ratingText": "(206件の評価)"
},
{
"primaryText": "2番目のリスト項目です。",
"secondaryText": "第2テキストです。",
"tertiaryText": "第3テキストです。",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/md_gorgonzola.png",
"providerText": "プロバイダーテキストです。",
"imageProgressBarPercentage": 50,
"ratingSlotMode": "multiple",
"ratingNumber": 4.5,
"ratingText": "(500件の評価)"
},
{
"primaryText": "画像なし、デフォルトを使用します。",
"secondaryText": "第2テキストです。",
"ratingSlotMode": "multiple",
"ratingNumber": 2,
"ratingText": "(50件の評価)"
},
{
"primaryText": "4番目のリスト項目です。",
"secondaryText": "進捗バーは表示しません。",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/tl_brie.png",
"ratingSlotMode": "multiple",
"ratingNumber": 5,
"ratingText": "(452件の評価)"
},
{
"primaryText": "5番目のリスト項目です。",
"secondaryText": "背景をぼかします。",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/MollyforBT7.png",
"ratingSlotMode": "multiple",
"ratingNumber": 0,
"ratingText": "(206件の評価)"
},
{
"primaryText": "6番目のリスト項目です(折り返しのある長いテキストです)。",
"secondaryText": "切り詰めのある長い第2テキストです。",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/sm_blue.png",
"ratingSlotMode": "multiple",
"ratingNumber": 0,
"ratingText": "(206件の評価)"
}
]
}
}
この配列を、${gridListData.listItemsToShow}という式によってlistItemsプロパティにバインドします。
{
"type": "AlexaGridList",
"headerTitle": "ヘッダータイトル",
"headerAttributionImage": "https://s3.amazonaws.com/ask-skills-assets/apl-layout-assets/attribution_dark_hub_prime.png",
"backgroundImageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/BT6_Background.png",
"listItems": "${gridListData.listItemsToShow}",
"imageShowProgressBar": true
}
リスト項目にカスタムレイアウトを使用する
カスタムレイアウトを使用して、AlexaGridListに表示されるリスト項目を定義できます。この方法は、AlexaImageListItemの形式がニーズに合わない場合に使用できます。
カスタムレイアウトの作成方法の詳細については、APLレイアウトを参照してください。
リスト項目にカスタムレイアウトを使用するには
-
表示するリスト項目の配列を作成します。配列の各項目は、一連のプロパティを持つオブジェクトです。次の例は、
listItemTextとcolorという2つのプロパティを持つリスト項目オブジェクトを示しています。{ "listItemText": "1番目のリスト項目です。", "color": "@colorGreen800" } -
APLドキュメントの
layoutsセクションに、リスト項目を1つ表示するカスタムレイアウトを作成します。個々の項目のデータにアクセスするには、dataプロパティを使用します。たとえば、配列内の各リスト項目に
listItemTextというプロパティがあり、表示するリスト項目のテキストが含まれている場合、レイアウト内でそのプロパティを参照するには、data.listItemTextを使用します。AlexaGridListは、提供されたlistItemsをリストのdataプロパティに渡します。dataプロパティがどのように機能するかの詳細については、データ配列のインフレートを参照してください。次の例は、
data配列の項目によって提供される背景色とテキストを使用してボックスを描画するカスタムレイアウトです。{ "type": "Frame", "backgroundColor": "${data.color}", "padding": "@spacingSmall", "items": [ { "type": "Text", "width": "100%", "height": "100%", "text": "${data.listItemText}", "textAlign": "center", "textAlignVertical": "center" } ] } -
AlexaGridListで、customLayoutNameプロパティにカスタムレイアウトの名前を設定し、リスト項目の配列をlistItemsプロパティにバインドします。{ "type": "AlexaGridList", "listItems": "${gridListData.listItemsToShow}", "customLayoutName": "MyListItem" }
次の例は、リスト項目にカスタムレイアウトを使用するAlexaGridListを示しています。このドキュメントでは、MyListItemというカスタムレイアウトを定義して、背景色を指定のcolorに設定したFrame内にlistItemTextを表示します。listItemsに渡される配列の構造は、この例のデータソースに示されています。
AlexaGridListテンプレートは、いくつかのプロパティをAlexaImageListItemに渡してデフォルト値を設定します。たとえば、defaultImageSourceを1回設定することで、任意のリスト項目に画像がない場合に使用される画像を指定できます。カスタムレイアウトを使用する場合は、カスタムレイアウトからこれらのデフォルトにアクセスすることはできません。リスト項目のデフォルトを設定する
AlexaGridListテンプレートには、AlexaImageListItemのプロパティに対応するプロパティが含まれています。これらは、リスト項目のプロパティのデフォルト値を設定するために使用されます。リスト項目にカスタムレイアウトを使用すると、AlexaGridListはこれらのデフォルト値を無視します。
デフォルトには次の2種類があります。
-
個々の項目で設定またはオーバーライドできるデフォルト -
AlexaGridListは、個々の項目に値が指定されている場合はその値を使用し、それ以外の場合はAlexaGridListに指定された値を使用します。たとえば、リスト全体に対して
imageScaleをbest-fitに設定し、リストの1つの項目でbest-fillにオーバーライドできます。 -
常にリスト内のすべての項目に適用されるデフォルト -
AlexaGridListは、常にこれらのプロパティに対してAlexaGridListで指定された値を使用します。個々の項目に設定された対応するプロパティの値は無視されます。たとえば、
imageAspectRatioはリスト全体に対して設定する必要があります。一部の項目を正方形として表示し、一部の項目を円として表示するリストは作成できません。リスト項目のimageAspectRatioの値は無視されます。
デフォルトとして使用するプロパティの一覧を次の表に示します。
| プロパティ | 項目の上書きが可能 |
|---|---|
defaultImageSource |
× |
imageAlignment |
◯ |
imageAspectRatio |
× |
imageBlurredBackground |
◯ |
imageHideScrim |
◯ |
ImageMetadataPrimacy |
× |
imageRoundedCorner |
◯ |
imageScale |
◯ |
imageShadow |
◯ |
primaryAction |
◯ |
各プロパティの詳細については、AlexaImageListItemを参照してください。
各リスト項目のアクションを指定する
AlexaGridListは対話型です。ユーザーはリストの項目を選択できます。primaryActionプロパティに、ユーザーが項目を選択したときに実行するコマンドを設定します。
AlexaGridListコンポーネントでprimaryActionを設定すると、AlexaGridListはリストの各項目にこのコマンドを渡します。
個々のリスト項目でコマンドをオーバーライドするには、リスト項目自体にprimaryActionプロパティを設定します。
次の例は、SendEventコマンドを使用してスキルにUserEventリクエストを送信する方法を示しています。SendEvent.arguments配列の一部として、選択された項目を表す番号を渡します。
{
"primaryAction": {
"type": "SendEvent",
"arguments": [
"ListItemSelected",
"${ordinal}"
]
}
}
AlexaGridListの例
以下は、AlexaGridListの例を示しています。
関連トピック
最終更新日: 2025 年 10 月 09 日