2016-08-04 66 views
0

我正在努力寻找如何在Xamarin中实现这个Java代码。我试过searchView.Close += delegate { };但它不起作用。Xamarin searchview OnActionExpandListener

searchMI.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { 

     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      Toast.makeText(getApplicationContext(), "MenuItem#onMenuItemActionExpand", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 

     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
      Toast.makeText(getApplicationContext(), "MenuItem#onMenuItemActionExpand", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 

回答

2

由于菜单项,它并没有在工作第一,我有一个例外

这是不支持使用menuitemcompat。 setonactionexpandlistener()

我不得不这样做,而不是

在我的文件的顶部:

using MenuItemCompat = Android.Support.V4.View.MenuItemCompat; 

在OnCreateOptionsMenu()当我创建的搜索视图。

IMenuItem searchItem = menu.FindItem(Resource.Id.searchItem); 
MenuItemCompat.SetOnActionExpandListener(searchItem, new ExpandListener(this)); 

最后监听器类

class ExpandListener : Java.Lang.Object, MenuItemCompat.IOnActionExpandListener 
{ 
    Context context; 

    public ExpandListener(Context pContext) 
    { 
     context = pContext; 
    } 
    public bool OnMenuItemActionCollapse(IMenuItem item) 
    { 
     //MyStuff with context 
     return true; 
    } 

    public bool OnMenuItemActionExpand(IMenuItem item) 
    { 
     //Stuff 
     return true; 
    } 
} 
2

创建自定义类,它实现了IMenuItemOnActionExpandListener

class ExpandListener : Java.Lang.Object, IMenuItemOnActionExpandListener 
{    
    public bool OnMenuItemActionCollapse(IMenuItem item) 
    { 
     return true; 
    } 

    public bool OnMenuItemActionExpand(IMenuItem item) 
    { 
     return true; 
    } 
} 

然后设置监听你的答案与

searchMI.SetOnActionExpandListener(new ExpandListener());