Deperecated/Android_강의

안드로이드 - ActionBar

누알라리 2020. 2. 13. 21:40
1. ActionBar는?

- 화면 상단에 배치된 바 부분을 의미

- OptionMenu 항목의 일부를 배치할 수 있다.

 

- OnCreateOptionMenu()로 생성

- OnOptionsItemSelected()로 옵션 메뉴 설정

- ActionBar에 나오는 애들은 menu.xml의 ShowasAction으로 설정

 

2. 구성방법

- OptionMenu를 사용하는 방법과 동일하며 ActionBar를 위한 속성 몇 가지를 설정한다.

- Icon : ActionBar에 표시되는 아이콘을 설정한다.

- showAsAction : ActionBar 배치 여부를 결정한다.

- actionViewClass : 접었다 폈다 할 때 나타날 뷰를 설정한다.

 

3. showAsAction

- Never(기본) : 메뉴를 ActionBar에 절대 표시하지 않는다.

- Always : 항상 ActionBar에 표시한다.

- ifRoom : 공간이 허락된다면 ActionBar에 표시한다.

- withText : title 속성의 문자열과 함께 표시된다.

- collapseActionView : 접었다 펼쳤다 하면서 뷰를 표시할 수 있다.

 

- menu.xml의 menu Item의 프로퍼티로 선택할 수 있다.

- showAsAction에 따라 menu들이 액션바에 표시되거나 옵션메뉴에 표시된다.

 

4. ActionBar에 검색창 띄우기

1. ActionBar에 올라가있는 메뉴들 중 하나의 아이콘을 돋보기 모양, showAsAction을 always|collapseActionView로 설정

2. 안드로이드 OS가 지원하는 클릭했을 때 타자키가 나오는 actionViewClass를 세팅

"app:actionViewClass = "android.widget.SearchView"

3. 리스너를 통해 검색창으로 하고싶은 작업 세팅

 

    <item
        android:id="@+id/tiem5"
        android:icon="@android:drawable/ic_search_category_default"
        android:title="슬아"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="android.widget.SearchView"/>

4. OnCreateOptionMenu에서 검색창 텍스트 바꾸기/ 검색완료 버튼 눌렀을 때의 처리 해주기.

 

    // 1. 메뉴 생성
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main_menu, menu)

        // 3. searchView의 기본 text 바꾸기
        // 서치로 사용되는 메뉴의 항목(item) 가져오기.
        var search_item:MenuItem? = menu?.findItem(R.id.tiem5)
        // 서치뷰 가져오기.
        var search_view:SearchView = search_item?.actionView as SearchView
        // 쿼리 힌트를 내가 원하는걸 하기.
        search_view.queryHint = "검색어를 입력해주세요"



        // 4. 검색완료 버튼 눌렀을 떄의 처리
        search_view.setOnQueryTextListener(object : SearchView.OnQueryTextListener
        {
            // 검색창에 들어오는 텍스트
            override fun onQueryTextChange(newText: String?): Boolean {
                textView.text = newText

                // 키보드가 내려가는지 안내려가는지 결정
                return false
            }

            // 검색창에 텍스트 치고 검색완료 버튼 눌러서 Submit했을 때의 반응
            override fun onQueryTextSubmit(query: String?): Boolean {
                textView2.text = query

                // 키보드가 내려가는지 안내려가는지 결정
                // false면 검색완료 누르면 내려감
                return false
            }
        })

        return super.onCreateOptionsMenu(menu)
    }

'Deperecated > Android_강의' 카테고리의 다른 글

안드로이드 - 다이얼로그  (0) 2020.02.13
안드로이드 - 메시징 - Toast  (0) 2020.02.13
안드로이드 - PopupMenu  (0) 2020.02.13
안드로이드 - ContextMenu  (0) 2020.02.13
안드로이드 - 메뉴 - OptionMenu  (0) 2020.02.12