ジェスチャー ナビゲーションとの互換性を確保する

Android 10(API レベル 29)以降、Android システムは ジェスチャーベースのナビゲーションですアプリ デベロッパーがこの脆弱性を悪用するには、 アプリはこの機能に対応しています。

  • アプリのコンテンツを画面全体に拡大する(エッジ ツー エッジへの対応)。
  • 競合するアプリ ジェスチャーに対処する。

さらに、Android 13(API レベル 33)では、 予測型「戻る」ジェスチャー(Android) 複数年契約に含まれるスマートフォン、大画面、折りたたみ式デバイスなどのデバイス なります。アプリ デベロッパーは、アプリで予測型「戻る」ジェスチャーをサポートするように手順を踏むことができます。

エッジ ツー エッジのアプリ コンテンツを提供する

フローティング ナビゲーション バーによって利用できるようになった画面スペースを利用するには、アプリで特定の変更を構成する必要があります。

アプリでコンテンツをエッジ ツー エッジで表示するをご覧ください。 をご覧ください。

競合するアプリ ジェスチャーに対処する

ジェスチャー ナビゲーション モデルは、アプリ デベロッパーが以前に使用していたジェスチャーと競合することがあります。アプリのユーザーに対する調整が必要な場合がある インターフェースを介してアクセスします。

「戻る」ジェスチャーとの競合

「戻る」の新しいシステム ジェスチャーは、画面の左または右端から内側へのスワイプです。これにより、Google Chat でアプリのナビゲーション要素が妨げられる 判断できます画面の左端および右端でのナビゲーション要素の機能を維持するには、タップ入力を受け入れる必要がある領域をシステムに示すことで、「戻る」ジェスチャーを選択的に無効にします。これを行うには、Android 10 で導入された View.setSystemGestureExclusionRects() API に List<Rect> を渡します。このメソッドは、現在 ViewCompat でも使用できます。 androidx.core:core:1.1.0-dev01

例:

KotlinJava
var exclusionRects = listOf(rect1, rect2, rect3)

fun onLayout(
        changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

fun onDraw(canvas: Canvas) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}
List<Rect> exclusionRects;

public void onLayout(
        boolean changedCanvas, int left, int top, int right, int bottom) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

public void onDraw(Canvas canvas) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

ホーム ジェスチャーまたはクイック スイッチ ジェスチャーとの競合

ホームとクイック スイッチの新しいシステム ジェスチャーはいずれも、 以前はナビゲーション バーが占有していたスペースで画面下部に表示されます。アプリ これらの操作は「戻る」ジェスチャーのように無効にできません。

この問題を軽減するために、Android 10 では WindowInsets.getMandatorySystemGestureInsets() API: タップ認識のしきい値をアプリに通知します。

ビュー階層のないゲームやアプリ

ビュー階層のないゲームなどのアプリでは、多くの場合、ユーザーはシステム ジェスチャー領域の近くをスワイプする必要があります。そのような場合、ゲームでは Window.setSystemGestureExclusionRects() を使用して、システム ジェスチャー用に予約された領域と重複する領域を除外できます。ゲーム 必要な場合にのみこれらの地域を除外してください 説明します。

ゲームでユーザーがホーム ジェスチャー領域の近くをスワイプする必要があれば、アプリは没入モードで配置するようにリクエストできます。これによって、ゲームの操作中はシステム ジェスチャーが無効になりますが、ユーザーは画面を下からスワイプすることで、システム ジェスチャーを再度有効にすることができます。

予測型「戻る」ジェスチャーをサポートするようにアプリを更新する

Android 13(API レベル 33)では、スマートフォン、大画面、折りたたみ式デバイスなどの Android デバイス向けに予測型「戻る」ジェスチャーが導入されました。予測型「戻る」ジェスチャーは、複数年にわたるリリースの一部です。この機能を完全に実装すると 「戻る」ジェスチャーのデスティネーションや他の結果をプレビューしてから、 学習を終えたら、学習を続けるかそのままにするかを 現在のビューに表示されます。

詳しくは、 予測型「戻る」ジェスチャーのサポートを追加する をご覧ください。

参考情報

ジェスチャー ナビゲーションについて詳しくは、以下をご覧ください。

ブログ投稿

動画