【Power Apps】Galleryの使い方

Power Appsでアプリを作るとなると避けて通れないものがGalleryです。

ここにまとめてみます。

Galleryとは

Galleryはさまざまなレコードをリスト表示することができます。 レコードの情報を表示させるためにGallery内に他のコントロールを入れます。

Galleryにはテンプレートを持っているので、データの数だけコントロールを用意する必要がなく、 テンプレート(1番目のデータ)に表示させたい項目分のコントロールを配置すると、2番目以降のデータも1つ目と同じように表示できます。

Power AppsのGalleryでテンプレートから複数のレコードを表示する例
スポンサーリンク

Galleryタイプ

主に6種類のタイプがありますが、データが入っているか入っていないかの違いなので、3つ紹介します。

垂直ギャラリー(Vertical)

垂直にスクロールできるギャラリーです。 空ではないギャラリーのデフォルトレイアウトは、イメージ、タイトル、サブタイトルになっていますが、右側のプロパティウィンドウから変更可能です。

Power Appsの垂直ギャラリー

水平ギャラリー(Horizontal)

水平にスクロールできるギャラリーです。

空でないレイアウトのデフォルトは垂直ギャラリーと同様にイメージ、タイトル、サブタイトルです。

こちらも垂直ギャラリー同様、右側のプロパティウィンドウにあるレイアウトから変更することが可能です。

Power Appsの水平ギャラリー

高さが伸縮可能なギャラリー(Flexible height)

縦スクロールができ、高さが伸縮可能なギャラリーです。

伸縮可能なというのは、例えば下記のようにオンオフのトグルボタンを用意し、 トグルボタンオンの時は高さが変わるのですが、 オフの時はぎゅっと詰まって表示できることが可能なギャラリーのことを言います。

高さ調整可能なギャラリーの場合

通常の垂直ギャラリーの場合

通常の垂直ギャラリーの表示例

空のGalleryを自分の好きなように構成する

今回は高さが伸縮可能な空の垂直ギャラリーを使用して作成してみます。 画面左にある[]ボタンを押し、[>レイアウト]から高さが伸縮可能な空のギャラリーを選択します。

Itemsプロパティにデータを表示させたいデータソースを記入ください。

今回はOneDrive内のExcelにあるテーブルデータソースにしています。 SharePointの場合はリスト名を選択、 SharePointのデータをコレクションに格納している場合は、コレクション名を選択してください。

Power AppsのGalleryのItemsプロパティにデータソースを設定する画面

左上のペンマークを押し、テンプレート選択した状態で、 [挿入]からラベルテキストアイコンなど挿入したいコントロールを追加してください。

今回は下記のテーブルギャラリーに入れます。

Galleryに表示するExcelテーブルの例

ラベルを入れてテーブルのPowerPlatform列のデータを表示させたいため、 TextプロパティにThisitem.PowerPlatformと入力します。

もうひとつラベルを追加し、こちらのラベルにはDescriptionデータを表示させたいため、 Thisitem.Desicriptionを入力します。

Gallery内のラベルにテーブルのデータを表示する設定例

すると、テーブルのデータが表示されます。

テンプレートが大きいため、2つ目の項目と間があいているので、テンプレートの大きさを調節してください。

さらに[切り替え]ボタンを追加し、オンの場合のみ説明を表示させようと思います。 [切り替え]ボタンのVisibleプロパティに式を設定します。

切り替えボタンの状態によってGalleryの説明を表示する設定例

これでオンの時のみ説明文が表示されるギャラリーが作成できました。

オンの時のみ説明文を表示するGalleryの完成例

Galleryのレコード選択時、色を変更する

レコードを選択した時、選択したレコードが変わると視覚的にわかりやすいです。

今回は切り替えボタンがオンの時、色が変わるように設定します。

GalleryのTemplateFillプロパティに下記を設定します。

TemplateFill=If(tglDiscription.Value, Color.LightSalmon, RGBA(0,0,0,0))
切り替えボタンがオンの時にGalleryの背景色を変更する例

先ほどはトグルボタンを使用して色を変更しましたが、ギャラリーを選択した時に色を変えることも可能です。 その場合にはIsSelectedプロパティを使用します。

TemplateFill=If(ThisItem.IsSelected, Color.LightSalmon, RGBA(0,0,0,0))
IsSelectedを使用して選択したGalleryの背景色を変更する例

アイテム間のPower Appsギャラリーの境界

Power Appsギャラリーコントロールのアイテム間に境界線(区切り線)を作成する方法は、 図形の長方形を使用します。

Power AppsのGalleryにはデフォルトで境界線という機能がありません。 同じアイコンの中に直線というアイテムがありますが、思うように使用できないため長方形の方がよいです。

テンプレートを選択した状態で、[挿入] → [図形] → [長方形]で長方形を追加します。 長方形XYWidthHeightを下記のように設定してください。

Rectangle1.X: 2

Rectangle1.Y: Gallery1.TemplateHeight - Rectangle1.Height

Rectangle1.Width: Gallery1.TemplateWidth - 2 * Rectangle1.X

Rectangle1.Height: 2

Rectangle1.Xはテンプレート内の長方形の左からの位置を指定します。

Rectangle1.Yはテンプレート内の長方形の縦方向の位置を指示しています。 テンプレートや長方形の大きさを変更しても位置が追随するように設定しています。

Rectangle1.Widthは長方形の幅を決めています。 こちらもテンプレートの大きさを変更しても追随するように設定します。

Rectangle1.Heightは長方形の高さを設定します。

Galleryのアイテム間に長方形で境界線を表示した例

Galleryが空の場合、非表示にし空であるメッセージを表示する

Galleryが空かどうかはIsEmpty関数を使用するとわかります。 この関数を使用して、Galleryが空の時には空であるメッセージを表示させます。

GalleryのVisibleプロパティに下記のコードを書くと、ギャラリーが空の場合、ギャラリーを非表示にします。

Visible=!IsEmpty(Gallery2.AllItems)

ギャラリーが非表示の時、空であるメッセージを出した方が親切なので、メッセージを表示させます。

テキストとアイコンはグループ化やコンテナの中にテキストやアイコンを入れると設定が楽にできます。

グループ化したテキストとアイコンのVisibleに下記を入力します。

Visible=IsEmpty(Gallery2.AllItems)

Galleryを段組み表示させる

Galleryのプロパティに「折り返しの数」(Wrap Count)があります。 この数を折り返したい段組みの数値に変更することで設定可能です。(最大10まで入力可能)

GalleryのWrap Countで段組みを設定する画面

選択したGalleryの特定の値を変更する

お仕事をしているときにこういうことできない?と言われて調べたものです。 別の記事としておこしましたので、よければ見てください。

GalleryのTemplatePadding

TemplateFillに色を付けてみると、1項目目と2項目目の間にギャップがあるのがわかると思います。

これはTemplatePaddingにデフォルトだと数値5が入っているためです。 0にするとこのギャップがなくなります。

TemplatePaddingが設定されたGalleryのギャップ
TemplatePaddingを0にしてGalleryのギャップをなくした例
スポンサーリンク