確保與手勢操作功能相容

從 Android 10 (API 級別 29) 開始,Android 系統可全面支援所有 以手勢進行操作應用程式開發人員必須採取兩項措施 的應用程式支援這項功能:

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

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

提供無邊框應用程式內容

充分運用浮動式所提供的額外螢幕空間 導覽列,則需要在應用程式中進行某些變更。

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

處理衝突的應用程式手勢

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

與返回手勢衝突

新的返回系統手勢是指從左側或 右側邊緣。這可能會影響 在這些領域中維持左側和右側邊緣的元素功能 方法是指出 系統要在哪些區域接收觸控輸入只要傳送 List<Rect>View.setSystemGestureExclusionRects() 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,用於通知應用程式觸控辨識門檻。

遊戲和其他非 View 應用程式

沒有檢視區塊階層的遊戲和其他應用程式經常會要求使用者執行 在系統手勢區域附近滑動。在這種情況下,遊戲可以採用 Window.setSystemGestureExclusionRects()敬上 排除與系統手勢預留區域重疊的區域。遊戲 請務必只在必要時排除這些區域 遊戲過程

如果遊戲需要使用者滑動靠近主畫面手勢區域,應用程式可以 要求展開沉浸模式。這麼做會停用系統手勢 同時允許使用者重新啟用 從螢幕底部向上滑動,藉此管理系統手勢

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

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

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

其他資源

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

網誌文章

影片