728x90
ToolBar도 ActionBar 처럼 ActionView를 구성할 수 있다.
package com.example.toolbaractionview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.widget.ArrayAdapter
import androidx.appcompat.widget.SearchView
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
val dataList = arrayOf("aaaa","bbbb","cccc","aabb","aacc")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
val adapter = ArrayAdapter(this,android.R.layout.simple_list_item_1,dataList)
list1.isTextFilterEnabled = true
list1.adapter = adapter
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main_menu,menu)
val item1 = menu?.findItem(R.id.item1)
val search1 = item1?.actionView as SearchView
search1.queryHint = "검색어 입력"
// 액션 뷰가 접혀지거나 펼쳐졌을 때 반을할 리스너
val listener1 = object : MenuItem.OnActionExpandListener{
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
textView.text="접혔습니다"
return true
}
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
textView.text="펼쳤습니다."
return true
}
}
item1.setOnActionExpandListener(listener1)
val listener2 = object: SearchView.OnQueryTextListener{
override fun onQueryTextChange(newText: String?): Boolean {
textView.text = "입력 중입니다"
textView2.text = "입력 중 : $newText"
list1.setFilterText(newText)
if (newText?.length == 0) {
list1.clearTextFilter()
}
return true
}
override fun onQueryTextSubmit(query: String?): Boolean {
textView.text = "입력 완료"
textView2.text = "입력 완료 : $query"
search1.clearFocus()
return true
}
}
search1.setOnQueryTextListener(listener2)
return true
}
}
액션바 제거
툴바
728x90
'안드로이드 > ActionBar' 카테고리의 다른 글
안드로이드 Toobar를 이용한 네비게이션 (0) | 2022.06.20 |
---|---|
안드로이드 Toolbar (0) | 2022.06.20 |
안드로이드 ActionBar 커스터마이징 (0) | 2022.06.19 |
안드로이드 ActionBar Navigation (0) | 2022.06.19 |
안드로이드 ActionView (0) | 2022.06.19 |