Android SearchView 사용하기

pass·2023년 3월 7일
0

Android

목록 보기
7/41

🖐 Android 에서 검색 기능을 구현할 때 사용하는 방법 중 SearchView 사용하기



보통 Android 에서 검색 기능을 구현할 때, ToolBar 안에 검색 창을 구현하는 방법을 사용한다.
EditText 와 Button 을 사용하여 검색기능을 구현할 수도 있지만, 이번에는 SearchView 를 다루는 방법을 작성하였다.



✔ xml

    <androidx.appcompat.widget.SearchView
        android:id="@+id/search"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:focusable="true"
        android:padding="20dp"
        app:iconifiedByDefault="false"
        app:layout_constraintBottom_toTopOf="@id/search_result"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_weight="1"
        app:queryHint="검색어를 입력하시오" />
  • xml 안에 SearchView를 작성한다.

  • iconifiedByDefault
    • true : SearchView는 기본적으로 접혀있는 상태로 시작이 되며, SearchView의 아이콘을 클릭하면 검색할 수 있도록 창이 열리게 되어있다. default는 true이다.
    • false : SearchView가 기본적으로 펼쳐있는 상태로 시작이 되며, 검색창을 클릭하여 바로 검색을 할 수 있다.

  • queryHint
    • 검색창에 hint를 표시해주는 기능



✔ kotlin

    private fun initSearchView() {
        // init SearchView
        binding.search.isSubmitButtonEnabled = true
        binding.search.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
            override fun onQueryTextSubmit(query: String?): Boolean {
                // @TODO
                return false
            }

            override fun onQueryTextChange(newText: String?): Boolean {
            	// @TODO
            	return true 
            }
        })
    }
  • kt 파일 안에 SearchView에 대해 설정해준다.

  • binding.search는 view binding을 사용한 것이므로, view binding을 사용하지 않을 경우 findViewById를 사용하면 된다.

  • isSubmitButtonEnabled = True
    • SearchView 안에 검색 버튼을 삭제

  • setOnQueryTextListener : 검색창에서 일어나는 event listener를 구현할 수 있다.
    • onQueryTextSubmit
      • 검색을 완료하였을 경우 (키보드에 있는 '검색' 돋보기 버튼을 선택하였을 경우)
      • return False : 검색 키보드를 내림
      • return True : 검색 키보드를 내리지 않음
    • onQueryTextChange
      • 검색어를 변경할 때마다 실행됨





📄 참고 : https://developer.android.com/reference/android/widget/SearchView

profile
안드로이드 개발자 지망생

0개의 댓글