2022/04/08

画面の幅と高さを知るには

多くの Notes アプリケーションは Nomad Mobile というアプリを使うことで iPhone, iPad, Android でも設計変更することなしに利用することができます。

ただスマートフォンを縦にして使う場合には、画面の幅が狭いことからフォームやビューの右側が隠れてしまうこともあります。(縦スクロールに比べて横スクロールは意外と面倒)

ビューやフォームを開くときに画面のサイズが分かれば、スマートフォンでは必要のない箇所(フォーム上の項目やビューの列、アクションボタンなど)を非表示に設定することができそうです。

Notes のバージョン 12 では、画面サイズを返す関数が新たに追加されました。

まずは下のスクリーンショットをご覧ください。


上は バージョン 12 の Notes クライアントを使い、フォームに設定した新しい関数を試している様子です。「ピクセル」の値がウィンドウサイズにあわせて変化すると同時にアクションボタンが見え隠れします。

このスクショは Twitter で紹介したものです。



このフォームには、画面の幅を取得する @ResolutionWidth と、画面の高さを取得する @ResolutionHeight の2つの関数を設定したフィールドがあります。この関数は、実行した時点のサイズ値を返すだけなので、これだけではスクショにあるように動的に値を変化させることはできません。

スマホの画面の向きを変えたり、Windowsアプリの端をドラッグしたりしてアプリの画面サイズが変化するタイミングで値を更新するためには、画面サイズが変わったことを検知するイベントが必要になります。そのイベントが、フォームやビューに新たに追加された OnSize イベントです。このイベントへ RelayoutWindow @Command というこれも新たに追加されたコマンドを式に設定することで、上のスクショにあるような動的に画面サイズの数値が変化したりアクションボタンやビューにある列の表示/非表示を切り替える仕組みを実装することができます。



昨晩の「のの会」では予定していた2つの話題が早くにおわり、その後に相談会(雑談)がありました。私が画面に表示していたフォームの設計から Onsize イベントを見つけた方がおり、バージョン12の新機能で画面サイズが取得できるようになったんですよーという話の流れから別の参加者が、これから Notes/Domino のバージョンアップを考えているけどバージョン12かなあ新しい機能も知りたい、みたいに切り出してくださいました。また別の参加者からは、TLS証明書管理やバックアップといった目玉機能を使おうにもメーカーの資料が充実してない、とも。それじゃあ次回以降は新機能を紹介しましょうかねーと私が発言しました(内容は未定)。のの会では参加者の興味本位でのご相談(雑談)を歓迎しています。もしご興味あれば参加してみてはいかがでしょうか。

0 件のコメント:

コメントを投稿