micomia株式会社の畑井です。
今回はある画面でリスト表示されている投稿などをタップして詳細が見れるような機能についてどうやって作るのか解説していきます。
今回お題として扱うのはユーザーの一覧表示と詳細表示画面となります。
1.ページを2枚作る

画像で表示しているプロジェクトではフォルダが複数ありますが、今回利用するのは「SampleList」と「SampleListDetail」の2つだけとなります。
2.Widgetを配置する

AppBarを削除して、Columnの中にListViewを入れ、ListViewの中にContainerを入れ、Containerの中にTextを入れています。

ListViewにAdd Queryで表示するデータを選択します。
今回はデータを次のページに渡すことだけを伝えることができれば問題ないのでどこのプロジェクトでも大抵定義されているusersコレクションを利用します。
usersコレクションをまだ定義していない方は下記の画像を参考に入力してみてください。

下記のような画面が表示されますが、Confirmで大丈夫です。

下の画像が完成状態です。

ListViewから取得してくる情報を画面に表示させてあげましょう。
今回はusers Documentのdisplay_nameで名前を表示させてあげるでいいと思います。
3.画面遷移を実装する

ContainerをクリックしてActionsからNavigate ToのSampleListDetailをクリックして上の画像のような状態にしましょう。
次に上の画像の画面右下にあるParametersというところの「+Define」をクリックします。
ここではパラメーターとして画面を移動する際に何のデータを一緒に持っていくかを決めていきます。

今回はListViewにあるDocument Referenceを次のページに持って行ってあげるとそのページでDocument Referenceを読み込んでドキュメント情報を取得できるので画像のように定義してConfirmを押しました。

Passという緑に光るボタンが現れますのでクリックしてListViewにあるDocument Referenceをセットしてあげます。
下の画像のようにセットしてみてください。

次の設定をするために移動先のSampleListDetailに移動します。
4.移動先のページでデータを受け取ろう

SampleListDetailのWidget Treeの一番上にあるWidgetをクリックして、Add QueryからDocument from ReferenceでPage ParametersにあるuserRefをセットしてあげます。画面遷移の時にセットしたParameterはPage Parameterという名前で遷移先の画面に現れます。

このページにDocument from ReferenceでセットしたのでText Widgetを置いてみるとデータが取れるようになっていることが確認できると思います。
複数のText Widgetを置くことで詳細情報を表示する画面を作ることができると思います。



.webp%3Falt%3Dmedia%26token%3D087cf100-0101-43ba-a354-dab3bbec04d2&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3Da7c14698-1b08-4fea-89c6-f77a9121f4c5&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D899eeefd-f4c9-44a6-9ec2-3ced0b223ffd&w=3840&q=75)

.webp%3Falt%3Dmedia%26token%3D554beac3-1f0a-4dae-99c0-76320019500f&w=3840&q=75)







.webp%3Falt%3Dmedia%26token%3D7c77ae76-450c-48b3-be29-0e949e7116dc&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3Dd8f3f5bc-41c2-4a1e-ace1-62e9ae72d08b&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D679eb351-4808-4d43-8b9d-92f6a88584ef&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D5c25485e-7be1-4f95-ad65-2e4c0c2d0ddb&w=3840&q=75)

.webp%3Falt%3Dmedia%26token%3D1875ff54-2eaa-4913-8d8c-9a4855927112&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D900f385d-12a2-449b-8d1e-83a57cef0088&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D0e802fb0-2dda-44a7-bf80-5d39019635ba&w=3840&q=75)