2015-12-30 63 views
2

当在Android的默认SearchView我设置iconifide为false然后关闭按钮SearchView被隐藏。搜索查看关闭按钮被隐藏

要求:SearchView默认情况下打开Activity启动时关闭按钮应该是可见的;

searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(this, SearchResultActivity.class))); 
searchView.setIconifiedByDefault(false); 

回答

0

第一种方法可以做到这一点

SearchView searchView = (SearchView) 
    menu.findItem(R.id.action_search).getActionView(); 
    searchView.setIconifiedByDefault(true); 
    searchView.setFocusable(true); 
    searchView.setIconified(false); 
    searchView.requestFocusFromTouch(); 

或有另一种方式

 @Override 
      public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
      super.onCreateOptionsMenu(menu, inflater); 
      inflater.inflate(R.menu.search, menu); 

      MenuItem searchItem = menu.findItem(R.id.action_search); 
      mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem); 

      try { 
       Field searchField = SearchView.class.getDeclaredField("mCloseButton"); 
       searchField.setAccessible(true); 
       mSearchCloseButton = (ImageView) searchField.get(mSearchView); 
      if (mSearchCloseButton != null) { 
       mSearchCloseButton.setEnabled(false);// mSearchCloseButton.setEnabled(false); 
       mSearchCloseButton.setImageDrawable(getResources().getDrawable(R.drawable.transparent)); 
      } 
      } catch (Exception e) { 
       Log.e(TAG, "Error finding close button", e); 
      } 
     } 

更多细节link-1link-1

相关问题