スワイプでの更新のユーザー インターフェース パターンは、
SwipeRefreshLayout
ウィジェットが縦スワイプを検出して特徴的な進行状況バーを表示し、コールバックをトリガーします。
使用します。この動作を有効にするには、ウィジェットを親としてレイアウト ファイルに追加します。
ListView
または
GridView
を作成し、
ユーザーがスワイプしたときに呼び出される更新動作。
このページでは、ウィジェットを既存のレイアウトに追加する方法について説明します。また、更新を追加して アクションバーのオーバーフロー領域にアクションを追加し、スワイプ操作を使用できないユーザーが 手動で更新する必要はありません。
SayRefreshLayout の依存関係を追加する
アプリで SwipeRefreshLayout
を使用するには、次の依存関係をアプリに追加します。
build.gradle
ファイル:
Groovy
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
SwipeRefreshLayout ウィジェットを追加する
「スワイプで更新」ウィジェットを既存のアプリに追加するには、SwipeRefreshLayout
を
単一の ListView
または GridView
の親。
SwipeRefreshLayout
は、単一の ListView
または
お子様 GridView
人。
次の例は、SwipeRefreshLayout
ウィジェットを
ListView
を含む既存のレイアウト ファイル:
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swiperefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
また、SwipeRefreshLayout
ウィジェットを
ListFragment
。もし
レイアウトに "@android:id/list"
という ID の ListView
が含まれ、
スワイプでの更新機能は自動的にサポートされます。ただし、明示的に宣言する
これにより、ListView
はデフォルトの ListFragment
ビュー構造よりも優先されます。条件
デフォルトのビュー構造を使用する場合、SwipeRefreshLayout
の部分をオーバーライドする場合
動作と ListFragment
の動作を確認します。
アクションバーに更新アクションを追加する
アプリのアクションバーに更新アクションを追加して、スワイプ操作を実行できないユーザーが 手動更新がトリガーされます。たとえば、ユーザー補助機能を必要とするユーザーはアクションバーのアクションをトリガーできる キーボードや D-pad などの外部デバイスを使用する。
更新アクションをボタンではなくメニュー項目として追加するには、属性を設定して
android:showAsAction=never
。アクションをボタンとして表示した場合、ユーザーは
更新ボタンのアクションは、スワイプして更新するアクションとは異なります。更新アクションを実行する
アクションバーを目立たなくして、スワイプ操作による手動更新を促す
D-pad ユーザーが探し求めるアクセスしやすいオプションを維持します。
次のコードは、スワイプで更新するアクションをオーバーフロー領域に追加する方法を示しています。
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_refresh" android:showAsAction="never" android:title="@string/menu_refresh"/> </menu>