Android如何集中ActionBar searchView

您好,我需要在searchView中放置一些文本,并重点/扩大searchView小部件。

这是我的尝试,但它不工作

@Override public boolean onCreateOptionsMenu(final Menu menu) { ... SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); searchView.setQuery(this.filtro, false); searchView.setFocusable(true); searchView.requestFocus(); searchView.requestFocusFromTouch(); 

尝试使用searchView.setIconified(false) 。 这对我工作:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActionBar actionBar = getActionBar(); SearchView searchView = new SearchView(this); actionBar.setCustomView(searchView); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); searchView.setQuery("test",true); searchView.setFocusable(true); searchView.setIconified(false); searchView.requestFocusFromTouch(); } 

这是另一个解决scheme。

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu, menu); MenuItem menu_search = menu.findItem(R.id.menu_search); menu_search.setOnActionExpandListener(new OnActionExpandListener() { @Override public boolean onMenuItemActionCollapse(MenuItem item) { // Do something when collapsed return true; // Return true to collapse action view } @Override public boolean onMenuItemActionExpand(MenuItem item) { //get focus item.getActionView().requestFocus(); //get input method InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); return true; // Return true to expand action view } }); return true; } 

这适用于我:

  @Override public boolean onMenuItemActionExpand(MenuItem item) { if (sm.isMenuShowing()) { sm.toggle(); } searchView.setIconified(true); KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, 32); searchView.onKeyDown(32, event); return true; } 

对我来说,以下工作:

 @Override public boolean onCreateOptionsMenu(Menu menu) { ... MenuItem miSearch = menu.findItem(R.id.menu_search); SearchView mSearchView = (SearchView) miSearch.getActionView(); mSearchView.setOnSearchClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mSearchView.setFocusable(true); mSearchView.requestFocusFromTouch(); } }); 

我使用android.support.v7.widget.SearchView。 当试图设置mSearchView.setIconified(false); 它进入了一个无限循环。

 searchView.setQuery("typeAnything",true); searchView.setFocusable(true); 

会做的伎俩。