ヘッダー行 (
ヒーローイメージ) と呼ばれる UI パターンを有効または無効にできます。
False |
既定値です。既定では、パターンは無効になっています。つまり、画面を下にスクロールしているときも、アプリケーションバーとステータスバーは常に表示されます。 |
True |
パターンが有効になり、[ Header Row Application Bars Class ] プロパティが使用可能になります。このプロパティを Application Bar テーマクラスとともに設定する必要があります。このテーマクラスとパターンをあわせて使用すると、アプリケーションバーの外観を変更できます。 |
このプロパティは、Form グループの下にある、
SD パネルおよび
WWSD の MainTable で使用できます。
Header Row パターンは、画面上部の最初の部分として機能します。まず、レイアウトの最初の行は、アプリケーションとステータスバー (システムバー) 用に予約された領域を使用します。エンドユーザーがコンテンツを上にスクロールすると、
[ Class ] プロパティに設定されたテーマクラスと
[ Header Row Application Bars Class ] プロパティに設定されたテーマクラスとの間でスムーストランジションが適用されます。この最初の行は、画像や動画などのバナーと考えてください。
[ Header Row Application Bars Class ] プロパティには、通常、「transparent」(透過) の値を含むすべての色があります。これにより、エンドユーザーが画面をスクロールすると、バナーが表示されたり消えたりするように錯覚させることができるのです。たとえば、Google Play では、ユーザーがアプリケーションの説明を見ようとすると、そのアプリケーションの短いデモ動画が表示されます。
厳密には、MainTable はデバイスの画面全体をカバーします。その範囲には、アプリケーションとステータスバーがある領域を含みます。これら 2 つのエレメントは、エンドユーザーが上方向にスクロールした結果、先頭行が画面の最上部より上に行って消えるまで、ある特定の状態を保ちます (たとえば、透過の状態で、目に見えないという錯覚を与える場合など)。
このプロパティは設計時にのみ適用されます。
この UI/UX の機能を WorkWithDevicesSpeaker オブジェクトの
List セクションに適用して、スピーカーのリストの上にバナーを表示するとします。
このためには、ヘッダーに動画と画像を含むレイアウトを設計する必要があります (両方ともテーブルの最初の行に組み込みます)。
グリッドにフィルタが含まれていないこと (制約については、この後の「注」を参照)、 [ Auto Grow ] プロパティが True に設定されていることを確認します。このアクションによってスピーカーリストが拡大され、エンドユーザーがエントリー内をスクロールできるようになります。
その後、現在のレイアウトに関連付けられている Theme オブジェクト (この場合は CarmineSD) を開き、ApplicationBars ノードを選択して、サブクラス ApplicationBarsHeaderRow があることを確認します。エンドユーザーがコンテンツを上にスクロールするまでヘッダーを表示するには、プロパティを次のように設定します (この場合はシステムバーが表示されます)。
最後に、MainTable レベルで [ Enable Header Row Pattern ] プロパティを True に設定し、 [ Header Row Application Bars Class ] プロパティに、先ほど作成した ApplicationBarsHeaderRow の値が割り当てられていることを確認します。
アプリケーションで得られる効果は次のようになります。
Android |
iOS |
|
|
- パターンを有効にするには、スクロール可能な画面で (たとえば、グリッドとともに) 使用する必要があります。この場合、グリッドで [ Auto Grow ] プロパティを設定しておく必要があります。
- 望ましい効果を上げるには、MainTable の先頭行の高さを、アプリケーションバーの高さよりも大きく設定する必要があります。また、 [ Auto Grow ] プロパティを True に設定する必要があります。
- 透過の効果を実現するには、ApplicationBarsHeaderRow クラスは次の 2 つの条件を満足させる必要があります。
1) すべての色 (背景色、ステータスバーの色、および前景色) が透過であること
2) (Android の場合) [ Elevation ] プロパティが空ではなく、0 であること
- [ Auto Grow ] プロパティで望ましい効果を上げるには、考慮しておくべき制約がいくつかあります。
- スライドモードで [ Navigation Style ] プロパティを使用する場合、このプロパティは、スライドメニューがステータスバーの領域を使用する (True) か、しない (False) かを表します。
- GeneXus 15 Upgrade 8 では、iPhone X 向けアプリケーションの設計用に [ Layout Behavior ] プロパティグループが追加されました。ヒーローパターンが適用されているときに横長モードにすると、コントロールの展開に関する既定値が使用されないため、これらの使用を検討してください。
コントロール: メイン テーブル コントロール
プラットフォーム: ネイティブモバイル (Android、iOS)
このプロパティは、
GeneXus 15 以降で利用できます。