我在工具欄中有一個搜索按鈕的活動中有多個片段。在我的一個片段中,這一切都成功地工作,但是當我將完全相同的代碼複製到其他兩個片段中時,它們無法正常工作。工具欄中的搜索按鈕沒有顯示鍵盤
當我點擊工作片段上的搜索按鈕時,彈出鍵盤,我可以開始輸入文本。但在另外兩個片段上,當我按下搜索按鈕圖標時,它向左滑動,然後我需要再次按下才能使其工作。任何人都知道我可以解決這個問題?
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.search, menu);
MenuItem item = menu.findItem(R.id.action_search);
SearchView sv = new SearchView(((Home) getActivity()).getSupportActionBar().getThemedContext());
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
MenuItemCompat.setActionView(item, sv);
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
list.clear();
for (int i = 0; i < mainList.size(); i++) {
if (mainList.get(i).getName().toLowerCase().startsWith(newText.toLowerCase(), 0) || mainList.get(i).getAddress().toLowerCase().startsWith(newText.toLowerCase())) {
list.add(mainList.get(i));
}
}
adapter.notifyDataSetChanged();
return false;
}
});
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId())
{
case R.id.action_search:
getActivity().onSearchRequested();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我想已經在我的搜索菜單項我有 '<菜單的xmlns:安卓= 「http://schemas.android.com/apk/res/android」 的xmlns:程序兼容性=「HTTP:/ /schemas.android.com/apk/res-auto「> ' –
它適合我。這可能是一個風格問題,你使用searchView的任何自定義樣式? – Stepango
我爲應用程序使用了自定義主題,但沒有使用searchview –