2016-04-28 2 views
0

Я хочу реализовать лучший способ реализации поиска. В моей деятельности у меня есть две вкладки со списком результатов, и я добавил searchView на панели инструментов, где пользователь может ввести то, что он ищет. есть ли способ показать результат списка выше моей активности, чем результаты, как в whatsapp?Как отобразить результат списка - searchView

enter image description here

Ниже приведен код, у меня есть, но его в основном SearchView.

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_subs, menu); 

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

     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){ 

      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 
       return false; 
      } 
     }); 

     return true; 
    } 

ответ

1

Я реализовал его, используя эту зависимость MaterialSearchView

Шаг 1

Добавьте зависимости для вашего Gradle

compile 'com.miguelcatalan:materialsearchview:1.4.0' 

Шаг 2

Добавить MaterialSearchView в файл макета вместе с панелью инструментов

<!— Must be last for right layering display —> 
    <FrameLayout 
     android:id="@+id/toolbar_container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="@color/theme_primary" /> 

     <com.miguelcatalan.materialsearchview.MaterialSearchView 
      android:id="@+id/search_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 
    </FrameLayout> 

Шаг 3

Добавьте элемент поиска в файл меню:

<item 
     android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_action_search" 
     android:orderInCategory="100" 
     android:title="@string/abc_search_hint" 
     app:showAsAction="always" /> 

Шаг 4

Добавить определить его в onCreateOptionsMenu:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 

     MenuItem item = menu.findItem(R.id.action_search); 
     searchView.setMenuItem(item); 

     return true; 
    } 

Шаг 5

Набор OnItemClickListener

MaterialSearchView searchView = (MaterialSearchView) findViewById(R.id.search_view); 
searchView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //Do some magic 
      } 
     }); 
Смежные вопросы