基本上,当我单击搜索图标时,我希望它可以扩展整个屏幕,并且椭圆形消失(这是我的菜单图标)。忽略颜色主题的差异,我从ESPN应用程序获取了第二张屏幕截图。代码在下面。
MENU.XML
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/search"
android:icon="@drawable/ic_search_black_24dp"
android:title="@string/search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"/>
<item
android:title="@string/settings"
android:id="@+id/settings"/>
MAINACTIVITY.KT
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val inflater = menuInflater
super.onCreateOptionsMenu(menu)
inflater.inflate(R.menu.main_menu, menu)
val manager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
val searchItem = menu?.findItem(R.id.search)
val searchView = searchItem?.actionView as SearchView
searchView.setSearchableInfo(manager.getSearchableInfo(componentName))
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
searchView.clearFocus()
searchView.setQuery("", false)
searchItem.collapseActionView()
Toast.makeText(this@MainActivity, "looking for $query", Toast.LENGTH_LONG).show()
return true
}
override fun onQueryTextChange(newText: String?): Boolean {
Toast.makeText(this@MainActivity, "looking for $newText", Toast.LENGTH_LONG).show()
return false
}
})
return true