带有SearchView的活动用向左箭头关闭

问题描述 投票:0回答:1

我有一个HomeActivity,并且启动了一个在工具栏中包含SearchView的SearchActivity。

我将SearchView设置为最初使用以下方法进行扩展:search.ExpandActionView();。这是C#中的SearchActivity代码,但是如果可以在Java / kotlin中提供帮助,则没问题...

 public class SearchActivity : AppCompatActivity
 {
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.activity_search);
        var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        SetSupportActionBar(toolbar);
        this.SupportActionBar.SetDisplayHomeAsUpEnabled(false);
        this.SupportActionBar.SetHomeButtonEnabled(false);
    }

    public override bool OnCreateOptionsMenu(IMenu menu)
    {
        MenuInflater.Inflate(Resource.Menu.menu_search_places, menu);
        IMenuItem search = menu.FindItem(Resource.Id.action_search_places);
        search.ExpandActionView();
       // var searchView = (Android.Support.V7.Widget.SearchView)search.ActionView;
        return true;
    }
}

这是menu_search_places.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
  <item
     android:id="@+id/action_search_places"
     android:icon="@android:drawable/ic_menu_search"
     app:showAsAction="always|collapseActionView"
     app:actionViewClass="android.support.v7.widget.SearchView"
     android:title="Search for a place"/>
</menu>

左上角的箭头似乎与SearchView链接在一起-它折叠了SearchView。我们可以修改它,以便当我单击箭头以关闭SearchActivity而不是折叠Searchview时?

android android-layout searchview
1个回答
0
投票

您可以在setOnActionExpandListener内的搜索菜单项上实现OnCreateOptionsMenu。这样,您可以在搜索视图崩溃或展开时收听更改。

searchItem.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
        override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
            // do something
            return true
        }

        override fun onMenuItemActionExpand(item: MenuItem): Boolean {
            // do something
            return true
        }
    })
© www.soinside.com 2019 - 2024. All rights reserved.