GoogleのInboxみたいに、リスト上のアイテムを左右にスワイプして削除などの操作を行うリストビューを作ってみました。
片手でスマホ操作する場合は、結構使いやすいUIですよね。
実装は下記ライブラリを参考にして、RecyclerViewを使って実装してみました。
<参考>
https://github.com/romannurik/Android-SwipeToDismiss
こんな感じで実装
ソースコードはこちら
基本的な実装方法は、
①スワイプ対象のView
②裏に見えるView(右スワイプ用)
③裏に見えるView(左スワイプ用)
のViewを重ねて、①のViewのスワイプ方向によって、②と③の表示/非表示(setVisibility)を切り替えています。
(実際のコードでは、スワイプ移動量によって計4枚のViewの表示を切り替えています)
あと、スワイプした距離が有効位置(例えば、削除が有効になる位置)まで来たら「ピコッ」と音を鳴らすようにしてみました。
ユーザの操作に対するレスポンスがあったほうが、操作した時の気持ちよさがあるなと。
そういえば、マテリアルデザインだとユーザが触ると波紋が広がるようなエフェクトを推奨してますね。
あとがき
Inboxを使ってて作りたくなったので作ってみました。
スワイプできるリストビューは多くの人が実装し、ライブラリとして公開しているようです。
他の人のソースコードを読みながら自分なりにカスタマイズしたりするのもいい勉強になります。