確保與手勢操作功能相容

從 Android 10 (API 級別 29) 開始,Android 系統可全面支援所有 以手勢進行操作應用程式開發人員必須完成兩件事,才能確保應用程式與這項功能相容:

  • 讓應用程式內容從邊緣延伸到邊緣。
  • 處理衝突的應用程式手勢。

此外,Android 13 (API 級別 33) 導入了 Android 適用的預測返回手勢 手機、大螢幕和摺疊式裝置等裝置, 版本。應用程式開發人員可採取措施,確保自家應用程式支援 預測返回手勢

提供無邊框的應用程式內容

如要充分利用浮動導覽列提供的額外螢幕空間,您必須在應用程式中設定特定變更。

詳情請參閱「在應用程式中以無邊框方式顯示內容」。

處理相衝突的應用程式手勢

手勢操作模型可能與先前的手勢發生衝突 開發人員使用的應用程式您可能需要對應用程式的使用者進行調整 介面。

與返回手勢相衝突

新的返回系統手勢是指從左側或 右側邊緣。這可能會干擾這些區域中的應用程式導覽元素。如要維持螢幕左側和右側邊緣元素的功能,請向系統指出需要接收觸控輸入的區域,選擇性停用返回手勢。您可以將 List<Rect> 傳遞至 Android 10 中推出的 View.setSystemGestureExclusionRects() API,自 androidx.core:core:1.1.0-dev01 起,ViewCompat 也支援這項方法。

例如:

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,可向應用程式告知觸控辨識門檻。

遊戲和其他非 View 應用程式

遊戲和其他沒有檢視區塊階層的應用程式,通常需要使用者在系統手勢區域附近滑動。在這種情況下,遊戲可以使用 Window.setSystemGestureExclusionRects() 排除與系統手勢預留區域重疊的區域。遊戲必須確保只在必要時 (例如遊戲過程中) 排除這些區域。

如果遊戲要求使用者在主畫面手勢附近滑動,應用程式可以要求以沉浸式模式顯示。這麼做可在使用者與遊戲互動時停用系統手勢,但使用者仍可從螢幕底部滑動來重新啟用系統手勢。

更新應用程式以支援預測返回手勢

Android 13 (API 級別 33) 在手機、大螢幕裝置和折疊式裝置等 Android 裝置上推出了預測返回手勢,預測返回 手勢是多年版本的一部分。完成實作後 可讓使用者事先預覽目的地或其他返回手勢的結果 可完全完成作業,以便決定要繼續還是停留在 目前的資料檢視

詳情請見 新增對預測返回手勢的支援

其他資源

如要進一步瞭解手勢操作模式,請參閱以下資源:

網誌文章

影片