ノウハウ

Bubbleで実装!ボタンを押す毎に リストを○○件ずつ追加表示する方法 – Custom stateを使います!

Bubbleでリストを追加表示する

さるくん
さるくん
できそうで、できませんという声が多いのがこのリスト表示
りすくん
りすくん
今回もCustom stateを使います! Custom stateは色々な場面で登場しますね〜

今回実装したいのはコレ↓
わかりやすいように動画にしました。

「〇〇件読み込む」などのボタンを押しその件数分リストを追加で表示します。
リストが最後になったら「クリック不可」にも

Custom stateの基本的な使い方を知っている前提で進めます。
Custom stateの基礎についてはこちら

Custom state の設定

まずはCustom stateの設定を行います。

どの部分から設定するかは人それぞれです。Repeating groupの設定から行っても問題ありません。ただ今回はCustom stateに設定した「値」をRepeating groupで使うことになります。説明のわかりやすさからCustom stateを先に解説します。

Custom stateを設定する「 i 」をクリックし
・State nameに任意の英数字の名前(例ではRG_countにしました)
・State typeは「number」にします

Default valueは、はじめに表示させたいリスト数を入れておきます。
第一のポイントです✅

勘の良い方はこの時点で分かった!かもしれませんが、Custom stateの「munber(数)」を使いRepeating groupに表示させるリスト数を指定します。

今回ははじめに5件表示させたいので、Default valeは「5」にしました。
10件表示させたい場合は「10」です。

Repeating groupの設定

次にDesignタブで、リスト表示させるRepeating groupを作成します。
Repeating groupについては一からは解説はしませんが今回の表示のために、ポイントを2つお伝えします。

ポイント1:Data sourceは Custom stateの「値」を取得

リスト表示させるData typeを指定し、その後ろに以下を続けます

・items until で、どこまでのリスト数を取得するか
・リスト数は、全項で設定した Custom stateの「値(数)」

画像)Data sourceの指定

ポイント2:rowの数は指定せず、最小の高さを指定

リストの行数は、ボタンをクリックする度に増えます

最終的な行数は何行になるかわかりません。
それゆえ row(行数)Fixed number of rowsは指定せずに最小の高さだけ指定しておきます

一行の(一人分)の User_studentデータが表示される高さを、最小50pxにしました。

厳密に言えば、中身の高さによって実際の高さが決まります。

中の画像が例えば50pxよりheightが高い場合、高さは50px以上になります。実際の高さはこの「Min height of row」では決まらないので最終的にこの数値はは0pxにしても構いません。中身を設定する際にある程度の高さを作っておいた方がTextなどの配置がしやすいので高さを入れています。

Layout タブの方のMin heightは0pxにし、Fit height to content にチェックを入れます↓

Fit height to content
Fit height to contentにチェックを入れると、中身の高さにフィットします

画像)幅は今回800pxに指定しました。幅はご自身のデザインに合う指定を行なってください。

Workflow の設定

ボタンを配置し、ボタンをクリックする毎のアクションをWorkflowに設定します。

いつもの流れですね
ボタンから→ Start/Edit workflowでWorkflowページに行き
Click here to add an actionで、Set stateを選択します。

やりたいことは

ボタンを押したら、「5」を加算

今現在のCustom state「RG_count」の数に +5 を追加します!

これで毎回ボタンを押す毎に「今のRG_counの数」に+5の数字が加算されます

つまり、押すたびに5が追加されるので以下の値がCustom stateに保持されます。
・初期の数字:5
・1回ボタンを押す:5 +5 =10
・2回ボタンを押す:10 +5 =15
・3回ボタンを押す:15 +5 = 20

この数がリストの数になり、その数分のUser_student のリストが表示されるようになります

Repeating Groupで、RG_count分のデータが表示されるように指定しました。
ボタンを押す毎にこのRG_count の数が5ずつ増えていくので、実際に表示されるリストもその数分になります。

画像)Repeating GroupのData source設定

リストを全て表示したら、ボタンを押せないようにする

最後にデザインのポイントです!
全リストが表示されたのに、ボタンがこのままだと「まだリストがある? 押したらまだ表示される?」と思ってしまいます。

リストが全部表示されたら、これ以上は
・ボタンが押せない(見てわかるように)
・押しても反応しない
デザインで認識してもらう必要があります。

ボタンのエレメント「Conditional」に対して設定を行います。

When に情景を指定し、その場合にテキストのないよう、ボタンの背景色、文字色、押せなくする 設定をしました。

・Whenに、RG_count数がDataの数より大きくなったら を指定
・テキストを、読み込む → もう無いよ! に変更
・ボタンの背景色を、#C6C4C4 (見た目で押せないとわかるグレー色に)
・文字色を、黒っぽく#333333
This element isn’t clickableにチェックをいれ、実際に押せなく(押しても無反応に)

今回は遊びの要素を入れ、テキストを「もう無いよ!」にしました。
実際の案件では「全リスト表示済」の表記にしたり、ボタン自体を非表示にするなど行います。

応用で、「全部で何件うち、現在何件」の表記をしてもわかりやすくて良いです。

どのような表示にしたらユーザーさんが迷わず快適に操作できるか?イチから考え実装できるのもBubbleの醍醐味です。ぜひ色々とご自身でも試してみてください。

まとめ:ポイントは Custom stateの数

前回の記事に続き今回も Custom stateの素晴らしさを体験できたのではないでしょうか?

  • Repeating groupのリストの数をCustom stateの「値」を使って指定する
  • ボタンを押したら、Custom stateの数を加算する

この合わせ技でリストの追加表示が可能になりました。

今回の例では5リストずつ追加するように数を指定しました。10や20など任意の数で増やすことがも可能です。

知れば知るほど 楽しくなるBubble!
今日も一歩前進楽しんでいきましょう^^

Bubbleの設定でお困りの方へ

思った動きを設定できない
こんな設定できるのか?

など

ご相談や代行も承っております。
お気軽にご連絡ください。

お問い合わせはこちら

ABOUT ME
おばとりっぷ
専業Bubbleエンジニア▷元webデザイナー/ディレクター▷CSSをBubbleに実装するのが得意▷日本国内のトップBubbleエンジニアとしてwebアプリ開発に携わる▷Bubble講師▷フルスクラッチ開発のアプリで起業した経験あり▷スタートアップ・起業家のBubbleアプリ開発の支援を積極的に行う。