Onsen UIでは、画面上に各要素を配置するときにグリッドシステムを採用しています。グリッドシステムでは、スプレッドシートのように画面を横列と縦列に分けます。各グリッドの横幅と縦幅を自由に指定したり、複数の行や列を結合することもできます。
レイアウトは<ons-col>
コンポーネントと<ons-row>
コンポーネントを組み合わせて構成します。横幅と縦幅は、属性やCSSを使用して柔軟に指定できます。
なお、一覧表示を行うときにはグリッド関連のコンポーネントを使用する必要はありません。iOSフラットデザインとAndroidマテリアルデザインの仕様に準拠したリスト用のコンポーネントを提供していますので、そちらをご利用ください。
ons.platform
を使い、実行中のプラットフォームを識別できます。
ons.orientation
を使って画面の向きを識別できます。
スワイプや長押しといったジェスチャーを検出することができます。Onsen UIではHammer.jsを組み込んでおり、ons.GestureDetector
オブジェクトとして利用できます。
Angularフレームワーク以外の場合:
var divGD = ons.GestureDetector(document.querySelector('#my-div'));
divGD.on('dragup dragdown', function(event) {
console.log('drag Y axis');
});
Angularフレームワークの場合:
@ViewChild('somediv') divGD; // <div #somediv>
this.divGD.nativeElement.on('dragup dragdown', function(event) {
console.log('drag Y axis');
});
他のライブラリを使っていてコンフリクトした場合は、下記のようにしてOnsen UIの持つジェスチャー機能を無効にできます:
Angularフレームワーク以外の場合:
ons.GestureDetector(document.querySelector('#my-menu')).dispose(); // Remove event listeners from the menu
Angularフレームワークの場合:
@ViewChild('mymenu') myMenu; // <ons-splitter #mymenu>
ons.GestureDetector(this.myMenu.nativeElement).dispose(); // Remove event listeners from the menu
React用バインディングを除き、ジェスチャーを受け取りたい部分のDOMに対してons-gesture-detector
コンポーネントを囲むことで、簡単にジェスチャーを認識できます。