2015-03-25 2 views
-1

Мне нужно предложение для использования наилучшего способа показать searchview с настраиваемым заголовком.android collapsable searchview с настраиваемым заголовком

Мой headerlayout должен первоначально выглядеть следующим образом

initial view

И после нажатия на кнопку поиска справа от заголовка, он должен заменить название заголовка и меню значок часть с поиска в поле ввода, как это.

after clicking search icon

нажав назад в этом состоянии, следует направлять в исходное состояние.

Как это сделать?

ответ

0

Вы хотите настроить SearchView или стандартный для вас вариант? Если я предлагаю смотреть в ActionBar с ActionView

Android ActionBar documentation о добавлении ActionView

+0

На самом деле я еще не использовал SearchView. Итак, я думаю, все, что подходит моей цели с минимальными усилиями, прекрасно :) – NarendraJi

+0

Я полагаю, что из окна 'SearchView' будет отлично. –

0

в меню каталога ресурсов
search_country_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_search" 
     android:icon="@drawable/abc_ic_search" 
     app:showAsAction="always|collapseActionView" 
     android:orderInCategory="0" 
     app:actionViewClass="android.support.v7.widget.SearchView"/> 

</menu> 

** В onCreateOptionmenu метод Activity в **

public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.search_country_menu, menu); 
     SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
     searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); 
     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
     menu.findItem(R.id.action_search).expandActionView(); 
     searchView.setQueryHint(getResources().getString(R.string.select_country)); 
     searchView.setImeOptions(EditorInfo.IME_ACTION_DONE); 

     searchView.setOnQueryTextListener(new OnQueryTextListener() { 

      @Override 
      public boolean onQueryTextSubmit(String arg0) { 
       searchView.clearFocus(); 
        return true; 
      } 
      @Override 
      public boolean onQueryTextChange(String arg0) { 
       etSearch.setText(arg0); 
       return true; 
      } 
     }); 
     return super.onCreateOptionsMenu(menu); 
    } 
+0

Но у меня есть пользовательский заголовок. Будет ли это работать с этим? – NarendraJi

Смежные вопросы