Palm Programmer's Laboratory
Palm OS User Interface Guidelines/7-2
7-2 スクロールバー
スクロールバーは、他の UI 要素の表示をスクロールします(図 7.4 参照)。スクロールバーは複数行のテキストフィールドやテーブル、リスト、およびフォームにアタッチできます。
図 7.4 スクロールバー
表 7.1 スクロールバーの詳細
指標 | 値 |
---|---|
幅 | 7 |
高さ | スクロール対象の要素と同じ高さ |
上端 | スクロール対象の上端に合わせる |
左端 | 153 |
境界線 | なし |
システムが定める挙動
スクロールバーは、4種類の値によってその挙動が決まります。
- 最小値。通常はゼロです。
- 最大値。この値は実行時まで決まらないことがあります。この値は対象要素を末尾までスクロールするのに要する行数で、次の数式によって算出されます。
number of lines of text - page size + overlap
ここで number of lines of text はオブジェクト全体を表示するのに必要な行の総数、page size は一度に画面表示可能な行数、そして overlap はあるページの末尾が次のページの先頭に重ねて表示される行数を指します。 - 初期値。通常は最小値と同じです。
- ページジャンプ値。すなわち、スクロールをした時に増減する値の大きさです。この値は画面に表示できる行数より1少なくする必要があります。つまり、フィールドが10行のテキストを表示できる場合、ページジャンプ値は9であるべきです。
Palm OS は、表示する情報が1画面に収まる量を越えるまではスクロールバーを表示しません。また、表 7.2 に示す振舞いを保証します。
表 7.2 スクロールバーのデフォルトの挙動
操作 | 挙動 |
---|---|
スクロールカーをドラッグ | ドラッグされた方向へスクロールカーが移動 |
矢印をタップ | スクロールカーが1行分上か下へ移動 |
スクロールカーの上下にあるグレーの部分をタップ | 1ページ分上か下へスクロールカーが移動 |
テキストフィールドの内側からフィールド境界を越えてドラッグ | スクロールカーがテキストに合わせて移動 |
システムはスクロールバーがアタッチされた UI 要素のスクロール処理は行ないません。それはアプリケーションが行なう必要がある処理です。
ルック&フィール
スクロールバーの実装では、以下のガイドラインに従って下さい。
垂直方向のスクロールバーのみ
Palm OS は垂直方向のスクロールのみをサポートします。水平方向のスクロールはサポートされません。
即時モードのスクロールをサポートする
スクロールモードには2種類があります。即時モードと遅延モードです。即時モードのスクロールでは、ユーザーのペンドラッグに合わせてスクロール処理が行なわれます。これはフィールドがどのくらい移動しているかがわかるため好まれています。遅延モードのスクロールではユーザーがペンを離すまで待機してからスクロール結果の表示を行ないます。
スクロールハードボタンをサポートする
なんらかの UI 要素をスクロールする場合は、ハンドヘルド自体についているスクロールハードボタンの使用をサポートするべきです。これらはスクロールカーの上下にあるグレーの領域をタップした場合と同じ効果を持つべきです。つまり、ページ単位での上下移動になります。
ルールを破る場合
Palm OS は水平方向のスクロールをサポートしないため、それが必要となるようなユーザーインターフェースは避けるべきです。ほとんどの場合、ユーザーは水平方向へのスクロールを予期しません。ただし、ウェブブラウザでは大きな画像や大きなテーブルのあるウェブページをサポートするために水平方向のスクロールをサポートしなければならない場合があります。