SearchViewを使用する
GmailやFacebookアプリみたいな検索窓を実装したいなーと考え色々調べていると、SearchViewを使用する方法がだいぶ簡単そうだったので、試してみた。
SearchViewのdocumentは以下 SearchView | Android Developers
配置するだけならすごく簡単でToolbarのxmlにSearchViewのitemを配置するだけ。肝心なのは、actionViewClassにSearchViewのクラスを指定してあげることです。
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:title="Search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always"/> </menu>
次にSearchViewからのアクションを扱う方法です。今回使用したのは、onQueryTextSubmitです。検索するクエリを入力したあとでsubmitした時に呼ばれるメソッドです。何かを検索する場合、onQueryTextSubmitをoverrideして、内部でAPIを叩く処理を書いたりするいいと思います(間違ってたらごめんなさい)。あとは検索したときのProgressBarを見えるようにするとかかな。
override fun onQueryTextSubmit(query: String?): Boolean { // queryがsubmitされたときに期待する動作を記述する }