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 |