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

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

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

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

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

フローティングによって使用可能な追加の画面スペースを活用するには、 アプリの特定の変更を構成する必要があります。

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

競合するアプリ ジェスチャーの処理

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

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

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

例:

Kotlin

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)
}

Java

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 デバイス向けに予測型「戻る」ジェスチャーが導入されました。予測型「戻る」 ジェスチャーは複数年のリリースの一部です。この機能を完全に実装すると 「戻る」ジェスチャーのデスティネーションや他の結果をプレビューしてから、 学習を終えたら、学習を続けるかそのままにするかを 現在のビューに表示されます。

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

参考情報

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

ブログ投稿

動画