【问题标题】:Activity with SearchView close with left arrowSearchView 活动用左箭头关闭
【发布时间】:2020-07-16 14:43:24
【问题描述】:

我有一个 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。

另外onOptionsItemSelected 没有被触发

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case android.R.id.home:
    //
    default:
        return super.onOptionsItemSelected(item);
}

我们可以这样修改吗当我单击箭头关闭 SearchActivity 而不是折叠 Searchview 时

【问题讨论】:

    标签: android android-layout searchview


    【解决方案1】:

    您可以在OnCreateOptionsMenu 内的搜索菜单项上实现setOnActionExpandListener。这样您就可以在搜索视图折叠或展开时收听变化。

    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
            }
        })
    

    【讨论】:

    • 谢谢。我在 onMenuItemActionCollapse() 中添加了 finish() ,但有一些延迟:SearchView 折叠然后活动关闭。如果在折叠 SearchView 之前有某种方法可以立即关闭活动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多