Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leoando/android13-back-gesture-samples
Sample for Back Gesture (Android 13+)
https://github.com/leoando/android13-back-gesture-samples
android-java android13 android14 predictive-back-gesture
Last synced: 11 days ago
JSON representation
Sample for Back Gesture (Android 13+)
- Host: GitHub
- URL: https://github.com/leoando/android13-back-gesture-samples
- Owner: LeoAndo
- Created: 2022-11-26T04:59:29.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-21T02:04:31.000Z (2 months ago)
- Last Synced: 2024-11-21T03:17:23.387Z (2 months ago)
- Topics: android-java, android13, android14, predictive-back-gesture
- Language: Java
- Homepage:
- Size: 28.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# 開発環境
Android Studio Iguana# android13-back-gesture-samples
Sample for Back Gesture (Android 13+)# 開発メモ
OS13で、戻るジェスチャーを使いたい場合は開発者オプションの設定が必要。
詳しくは、[ここ](https://developer.android.com/guide/navigation/predictive-back-gesture#dev-option)参照する。
それより古いOSは戻るジェスチャーは使えない。Jetpack API側で従来のキーイベント処理を行ってくれる。LifecycleOwnerを引数に取る[OnBackPressedDispatcher#addCallback](https://developer.android.com/reference/androidx/activity/OnBackPressedDispatcher#addCallback(androidx.lifecycle.LifecycleOwner,androidx.activity.OnBackPressedCallback))を使用すれば、画面のライフサイクルの終了タイミングで解放処理を行ってくれるのでメモリリークを防げる。
https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:activity/activity/src/main/java/androidx/activity/OnBackPressedDispatcher.java;l=313?q=OnBackPressedDispatcher&ss=androidx%2Fplatform%2Fframeworks%2Fsupport&hl=ja
```java
@Override
public void cancel() {
mLifecycle.removeObserver(this);
mOnBackPressedCallback.removeCancellable(this);
if (mCurrentCancellable != null) {
mCurrentCancellable.cancel();
mCurrentCancellable = null;
}
}
```Jetpack Composeの場合は、`BackHandler`を使う。こちらに関しては、`com.google.accompanist.web.WebView`を使用していれば内部で`BackHandler`を使っているので、開発者が対応する必要はない。
https://github.com/google/accompanist/blob/7a293b358c293d398a9b95185b41ef3cc1136475/web/src/main/java/com/google/accompanist/web/WebView.kt#L84:L86
```kotlin
BackHandler(captureBackPresses && navigator.canGoBack) {
webView?.goBack()
}
````com.google.accompanist.web.WebView`の使い方は以下のサンプルコードを参考にする。
https://github.com/google/accompanist/blob/a0ebf63b2bb5d681fd5c2c6bb6c2e97022b1b296/sample/src/main/java/com/google/accompanist/sample/webview/BasicWebViewSample.kt# Capture OS: 13
| バックキー | 戻るジェスチャー |
|:---|:---:|
| | |# Capture OS: 8
| バックキー | 戻るジェスチャー |
|:---|:---:|
| | 利用不可能 |# refs
https://github.com/LeoAndo/development-conference-memo/issues/161
https://github.com/LeoAndo/development-conference-memo/issues/81
https://developer.android.com/guide/navigation/predictive-back-gesture?hl=ja
https://codelabs.developers.google.com/handling-gesture-back-navigation?hl=ja#0
[Jetpack ComposeのBackHandlerを使ったサンプル](https://github.com/raheemadamboev/predictive-back-gesture)