将搜索栏扩展到工具栏的整个长度-Kotlin

时间:2020-08-10 17:40:55

标签: android kotlin android-toolbar searchview

What I see currently

What I want to see

基本上,当我单击搜索图标时,我希望它可以扩展整个屏幕,并且椭圆形消失(这是我的菜单图标)。忽略颜色主题的差异,我从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

0 个答案:

没有答案