2015-12-30 61 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

相關問題