我有一個工作的SearchView,它在用戶點擊搜索圖標時在我的OptionsMenu中展開。但它只在其他OptionsMenu圖標中的可用空間內擴展。在寬屏幕上,這很好,但空間狹窄,搜索框中只能顯示5-10個字符。我希望它覆蓋其他圖標,例如它適用於Android通訊錄應用程序。目前,我正在構建targetSdkVersion = 17。希望我錯過了一些簡單的東西:)SearchView中的選項菜單不全寬
(注意稍後添加:目前唯一可行的解決方案是當我想要隱藏所有菜單圖標來擴展搜索圖標,這在概念上很簡單,但是這很麻煩,因爲當恢復隱藏的圖標時,必須通過一堆邏輯來確定要恢復哪些圖標,或者保持狀態變量等等)
這裏是我的項目在XML爲OptionsMenu:
<item
android:id="@+id/menu_search_shallow"
android:title="Search Current Folder"
android:icon="@drawable/ic_btn_search"
android:showAsAction="always|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
我也有我主要活動代碼:
@Override
public boolean onCreateOptionsMenu (Menu menu)
{
getMenuInflater().inflate(R.menu.nav_menu, menu);
this.optionsMenu = menu;
MenuItem searchItem = menu.findItem (R.id.menu_search_shallow);
searchItem.setOnActionExpandListener (this);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_shallow_hint));
searchItem = menu.findItem (R.id.menu_search_deep);
searchItem.setOnActionExpandListener (this);
searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_deep_hint));
}
和
@Override
public boolean onMenuItemActionExpand(MenuItem item)
{
SearchView searchView = (SearchView) item.getActionView();
searchView.setOnQueryTextListener (this);
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item)
{
SearchView searchView = (SearchView) item.getActionView();
searchView.setQuery ("", false);
return true;
}
這聽起來很合理。我現在不打算改變工作代碼,但是我認爲這個答案是正確的,假設你是正確的! –
不起作用,只設置MaxWidth = 10000將跨越視圖,但隱藏其他項目 – Hiep