我使用的動作條菜單:Xamarin的Android:動作條搜索查看返回的ActionView空
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_search"
android:actionViewClass="com.abc.AppSearchView"
android:icon="@drawable/ic_menu_search"
android:showAsAction="always|collapseActionView" />
</menu>
然後我它充氣和:
public override bool OnCreateOptionsMenu (IMenu menu)
{
MenuInflater.Inflate (Resource.Menu.actionMenu, menu);
_actionBarMenu = menu;
// Get the SearchView and set the searchable configuration
var searchManager = (SearchManager)GetSystemService (SearchService);
var searchMenuItem = menu.FindItem (Resource.Id.menu_search);
var searchView = (AppSearchView)searchMenuItem.ActionView;
// Assumes current activity is the searchable activity
searchView.SetSearchableInfo (searchManager.GetSearchableInfo (ComponentName));
searchView.SetSearchViewListener (this);
return base.OnCreateOptionsMenu (menu);
}
我有一個自定義搜索查看執行:
public class AppSearchView : SearchView
{
private IAppSearchViewListener mListener;
public AppSearchView (Context ctxt) : base (ctxt)
{
}
public override void OnActionViewCollapsed()
{
if (mListener != null)
mListener.OnSearchViewCollapsed (this);
base.OnActionViewCollapsed();
}
public override void OnActionViewExpanded()
{
if (mListener != null)
mListener.OnSearchViewExpanded (this);
base.OnActionViewExpanded();
}
public interface IAppSearchViewListener
{
void OnSearchViewCollapsed (SearchView sView);
void OnSearchViewExpanded (SearchView sView);
}
public void SetSearchViewListener (IAppSearchViewListener listener)
{
mListener = listener;
}
}
searchMenuItem.ActionView
爲空(因此,搜索視圖爲空)。但是這個相同的代碼在另一個應用程序中有效。這兩個應用程序都使用Xamarin.Android.Support.v13
。 另外,如果我使用android.widget.SearchView
,它工作正常,並且ActionView
不爲空。 有人可以請同樣的一些燈光?
其實ActionView屬性對於搜索菜單項是NULL。所以在這裏使用JavaCast沒有用。另外,我沒有使用MenuItemCompat,因爲我支持Android 4.0以上的設備。你認爲這會有所作爲? –
閱讀編輯:) – Cheesebaron