diadia

興味があることをやってみる。自分のメモを残しておきます。

スワイプでデータ更新をする

SwipeRefreshLayoutを使えば良い事がわかった。 GlidやLinearの親としてSwipeRefreshLayoutを使う。

参考ドキュメント

スワイプでの更新をアプリに追加する  |  Android デベロッパー  |  Android Developers

参考ドキュメントによるとsupport.v4を使うことになっているが、androidxのバージョンを使いたい。 そのためにimport先を調べておく必要がある。

データの更新が終了したらsetRefreshing(false)をセットする事がわかった。

使い方のイメージをメモ

まずSwipeRefreshLayoutはデフォルトで使えない機能なのでandroidxのモジュールをgradleにインストールする。

//swiperefreshlayoutのインストール : 
//https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'

次にlayoutファイルにandroidx.swiperefreshlayout.widget.SwipeRefreshLayoutビューを加える。このタグ以下にはListViewやRecyclerViewを設置するが、複数のビューを設置する事ができないので気をつけること。

このビューにはsetOnRefreshListener{}がある。スワイプを検知するリスナーで{}内にデータ更新のロジックを記述する。 データ更新が終わったらクルクルを削除するためにswiperefresh.isRefreshing = falseを実行する。 コレで良い。